Розширене: Адаптивний Туторіал
Перемикання дизайну туторіалу між пристроями.
Якщо ваша гра призначена для 2+ пристроїв, підказки можуть відрізнятися. Наприклад, для ПК потрібна підказка "клік", а для мобільних - підказка "дотик". Система підтримує адаптацію туторіалу для цього. Кожен пристрій вимагатиме окремого ATM з власними підказками. Цей підхід використовується, щоб уникнути жорсткої матриці відповідності та дозволяє більш гнучке налаштування підказок для різних пристроїв. Отже, щоб створити адаптивний туторіал для кількох пристроїв:
Додайте окремий TutorialSystem на сцену для кожного типу пристрою (наприклад, один для ПК, один для мобільних).
ATM на одній сцені повинні мати унікальні "currentDeviceATM" в TSR. Наприклад, окремий "ATM_Mobile" і окремий "ATM_Gamepad".
Призначте унікальні підказки для кожного ATM, адаптовані для пристрою. ATM для різних пристроїв не пов'язані між собою, щоб туторіали для різних пристроїв могли враховувати унікальні кроки і не залежати від жорсткої матриці відповідності. Рекомендується писати туторіал для кожного пристрою окремо.
Вимкніть Autostart в TSR, щоб конкретний ATM не запускався автоматично без команди TurnOnTutorial. Або залиште Autostart увімкненим, а в одному ATM призначте forMobileBuildOnly, а в іншому - forPCBuildOnly, щоб вони самі вмикалися лише на певних пристроях.
Для увімкнення/вимкнення конкретного ATM використовуйте методи: TurnOffTutorial, TurnOnTutorial в TSR. Наприклад:
[SerializeField] private TutorialSceneReferences tutorialDesktop;
[SerializeField] private TutorialSceneReferences tutorialMobile;
[SerializeField] private TutorialSceneReferences tutorialGamepad;
private TutorialSceneReferences currentTutorial;
// Припускаючи, що це повертає рядок на кшталт "Desktop", "Mobile" або "Gamepad"
private void MethodForDeviceDetection()
{
tutorialDesktop?.TurnOffTutorial();
tutorialMobile?.TurnOffTutorial();
tutorialGamepad?.TurnOffTutorial();
string deviceType = GetDeviceType();
switch (deviceType)
{
case "Desktop":
currentTutorial = tutorialDesktop;
break;
case "Mobile":
currentTutorial = tutorialMobile;
break;
case "Gamepad":
currentTutorial = tutorialGamepad;
break;
default:
Debug.LogError("Device type not recognized!");
break;
}
// Увімкнути вибраний туторіал, тільки якщо він не null
currentTutorial?.TurnOnTutorial();
}
// Приклад методу для отримання типу пристрою
private string GetDeviceType()
{
if (Input.GetJoystickNames().Length > 0)
return "Gamepad";
if (Application.isMobilePlatform)
return "Mobile";
return "Desktop";
}Збереження та локалізація вже адаптовані для кількох ATM на сцені і не вимагають додаткової конфігурації. Перемикання між пристроями посеред прогресу гри може вимагати додаткової синхронізації прогресу.
Last updated