# Налаштування Кроків

{% hint style="info" %}
Для універсального використання, встановіть Interaction → Manually Call і Step Start → Manually Call. Тепер ви можете прив'язати крок до будь-якого типу введення, який ви реалізували самостійно, використовуючи [ручний виклик](https://octanta-studio.gitbook.io/automatic-tutorial-maker-in-game-tips-ua/vikoristannya/rozshirene-ruchni-vikliki) зі скрипта.
{% endhint %}

1. **Відкрийте список Step Sequence в ATM.**

<figure><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2FuyetCcaR1Ft0gcmY7d7b%2Fimage_2025-05-14_09-48-36%20(1).webp?alt=media&#x26;token=9d0a7957-0eed-42c9-993f-dbdad11c1b75" alt=""><figcaption><p>Крок</p></figcaption></figure>

Цей список містить елементи – кроки, які гравець повинен буде зробити. Спочатку вони записуються як послідовність, де один крок активується після іншого. Тут можна редагувати логіку кожного кроку.

* Step State поле тільки для читання і відображає статус кроку під час виконання (Done - завершено, Displaying - активний, Not Done Yet - ще не завершено).
* Blocked By Time Delay поле тільки для читання. Якщо встановлено Start Delay, крок не почнеться, доки не пройде вказана тривалість. Це додаткова функція для запуску кроків, наприклад, з пошуком об'єктів "By Tag", оскільки при одночасному запуску об'єкти, що з'являються, можуть не бути знайдені.
* Blocked By Time поле тільки для читання. Якщо встановлено Min Time Amount, крок не буде завершено, доки не пройде вказана тривалість. Це додаткова функція для запобігання випадковим клікам, які закривають кроки.
* Blocked By Button поле тільки для читання. Якщо крок містить графіку з кнопкою підтвердження, тільки її натискання розблокує крок, дозволяючи продовжити виконання.
* **Редагуйте кожен крок** відповідно до ваших потреб.

<div><figure><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2FZnIn354m0GVs3XepT74U%2Fimage_2025-05-14_09-48-36%20%E2%80%94%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F.png?alt=media&#x26;token=7293f601-2e0b-4030-804d-fe0081714124" alt=""><figcaption><p>Умови старту</p></figcaption></figure> <figure><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2FX2Z1Z70rK4JvxcDT1sh5%2Fimage_2025-05-14_09-48-36%20%E2%80%94%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F.png?alt=media&#x26;token=90ac05fb-3984-4aab-a0a6-876a181fbb53" alt=""><figcaption><p>Умови виконання</p></figcaption></figure> <figure><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2F5rHdcESpIYMSZfxAm2kh%2Fimage_2025-05-14_09-48-36%20%E2%80%94%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F.png?alt=media&#x26;token=04a630e5-16c0-4ff6-92da-a7b9cba6d7c7" alt=""><figcaption><p>Деталі по цілям</p></figcaption></figure> <figure><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2FF6raY9073V31NbWrCEIl%2Fimage_2025-05-14_09-48-36%20%E2%80%94%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F.png?alt=media&#x26;token=66c533f4-3aea-4fba-a9f6-3e27de709eb9" alt=""><figcaption><p>Додаткові методи</p></figcaption></figure></div>

Щоб **змінити логіку початку** кроку:

* Щоб запобігти автоматичному запуску кроку, встановіть Start Step → Manually Call. Крок тоді чекатиме на тригер зі скрипта або натискання кнопки. Використовуйте публічні методи в скрипті TutorialSceneReferences, наприклад StartTutorialStep(0); щоб запустити крок номер 0. Див. [Ручні Виклики](https://octanta-studio.gitbook.io/automatic-tutorial-maker-in-game-tips-ua/vikoristannya/rozshirene-ruchni-vikliki).
* Залиште Start Step як Auto After Previous Step, якщо ви хочете, щоб крок починався одразу після завершення попереднього. Якщо він встановлений як Element 0, він ініціалізується при Start().
* Встановіть час Start Delay, наприклад 0.5f, щоб запустити крок із затримкою. Рекомендовано для взаємодій "By Tag" та "By Layer".
* Щоб дозволити кільком крокам у послідовності запускатися асинхронно, встановіть прапорець Execute In Parallel на true для кожного кроку в групі та призначте їм однаковий Parallel Group ID. Таким чином, усі кроки в групі починаються разом, але кожен завершується лише коли його конкретна умова виконана.

Щоб **змінити логіку, за якою крок вважається завершеним**:

* Щоб змінити тип дії, очікуваної від гравця, виберіть тип Interaction зі списку підтримуваних. Див. [Ручні Виклики](https://octanta-studio.gitbook.io/automatic-tutorial-maker-in-game-tips-ua/vikoristannya/rozshirene-ruchni-vikliki). Наприклад, Click – гравець повинен клікнути лівою кнопкою миші або торкнутися цілі. KeyCode - гравець повинен натиснути всі цільові клавіші, перелічені в KeyCodes, у будь-якому порядку.
* Щоб змінити спосіб визначення цілі для взаємодії гравця, виберіть тип Check Interaction зі списку підтримуваних. Наприклад, Click+ByGameObject = гравець повинен клікнути на конкретний об'єкт на сцені. Click+ByTag = гравець повинен клікнути на будь-який об'єкт з цим тегом на сцені. Click+ByLayer = гравець повинен клікнути на будь-який об'єкт з цим шаром на сцені. Click+AnyTarget = гравець може клікнути будь-де для завершення кроку. Це підходить для випадків, де ціль не потрібна, наприклад, введення з клавіатури. Click+ByType буде очікувати на клік по будь-якому об'єкту вказаного типа (2D, 3D, UI).
* Для безпосереднього встановлення цілей та їх типів є кілька списків. Такі як конкретні Game Objects для взаємодії, теги, шари, клавіші клавіатури, а також типи для визначення об'єктів (2D, 3D, UI). Використовуйте їх для доповнення Check Interaction. Наприклад, якщо ви вибираєте ByTag, переконайтеся, що список Tags містить теги, які будуть використовуватися.
* Якщо встановлено Min Time Amount, крок не буде завершено, доки не пройде вказана тривалість. Це додаткова функція для запобігання випадковим натисканням, які випадково закривають кроки.

Для **прикріплення додаткової логіки** до кроків використовуйте поля Additional step behaviour. Додайте методи, які запускаються на початку кроку туторіалу. Додайте методи, які запускаються, коли крок завершується. Найкращі методи для додавання до цих полів:

* Призупинення/відновлення ігрового часу через скрипт
* Збір аналітики завершення
* Застосування/видалення розмиття фону
* Вимкнення будь-якого іншого можливого введення, крім необхідного, і його повторне ввімкнення після
* Відображення загального прогресу навчання з заповненням шкали
* Надання зворотного зв'язку через haptics або інші сенсорні ефекти, коли крок завершено (див. Touch Effect System > ShowEffect)

{% embed url="<https://www.youtube.com/watch?v=kVfUOL4JfxI>" %}

Щоб **змінити візуальне представлення**, заповніть поля Visual Tips та Localization Reference префабами та текстовими рядками. Різні типи підказок не є взаємовиключними і використовують незалежні налаштування. Асет включає різні префаби, які можна прикріпити тут або використовувати як посилання для створення власних. Див. [Префаби Візуалів](https://octanta-studio.gitbook.io/automatic-tutorial-maker-in-game-tips-ua/prefabi-vizualiv).

<table><thead><tr><th width="416">Додавання візуалів</th><th>Поля</th></tr></thead><tbody><tr><td><ul><li>Щоб проілюструвати крок з підказкою <strong>UI Pointer</strong>, призначте необхідний префаб покажчика до поля Pointer Prefab. Щоб прикріпити текст до покажчика, заповніть поле Pointer Text.</li><li>Щоб проілюструвати крок з підказкою <strong>UI Graphic</strong>, призначте необхідний графічний префаб до поля Graphic Prefab. Щоб прикріпити текст до графіки, заповніть поле Graphic Text.</li><li>Щоб додатково вказати кінцевий цільовий об'єкт, наприклад, кінцеву точку для кроку Drag and Drop, призначте префаб hover до поля Hover Prefab. Це ще один стандартний UI Pointer, доданий як доповнення до кроку.</li><li>Щоб проілюструвати крок з підказкою <strong>World Pointer</strong>, призначте необхідний префаб покажчика до поля World Pointer Prefab. Щоб прикріпити текст до покажчика, заповніть поле World Pointer Text.</li><li>Щоб проілюструвати крок з підказкою <strong>World Graphic</strong>, призначте необхідний графічний префаб до поля World Graphic Prefab. Щоб прикріпити текст до графіки, заповніть поле World Graphic Text.</li><li>Щоб додатково вказати кінцевий цільовий об'єкт, наприклад, кінцеву точку для кроку Drag and Drop, призначте префаб hover до поля World Hover Prefab. Це ще один стандартний World Pointer, доданий як доповнення до кроку.</li></ul></td><td><img src="https://1026099387-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqy246TZV1QKmJQ2M9KG%2Fuploads%2FEliiVFE2nL6NM6I3NRHF%2Fimage_2025-05-14_09-48-36.png?alt=media&#x26;token=c0936f0f-4abc-4fd7-a530-6248387a8ac7" alt="" data-size="original"></td></tr></tbody></table>

**Щоб перекрити всі промені (raycast)**, крім тих, що в цільовій області, призначте префаб **UI Transparent Mask** у **Hover Prefab,** встановіть розмір та форму вирізу в компоненті **IrisCutoutMask**.

Щоб **змінити текстові значення** в PointerText, GraphicText, WorldPointerText, WorldGraphicText:

* Редагуйте текстове значення в кожному кроці або перейдіть до TSR > InputTextStrings об'єктів, де зберігаються всі текстові підказки. Ці тексти взаємопов'язані і можуть бути безперешкодно редаговані як з кроків, так і з цієї центральної колекції.
* Щоб зберегти поточні текстові значення, експортуйте їх у CSV-файл за допомогою спеціальної кнопки.
* За замовчуванням кроки використовують англійську мову та одне поле введення для кожного візуального елемента. Для більш гнучкої настройки тексту та локалізації див. Localization (для перекладу) або Manual Calls (щоб просто замінити текст під час виконання).

{% hint style="info" %}
**Не забудьте зберегти зміни.** Рекомендується розпакувати префаб ATM і використовувати окремий екземпляр для кожної сцени.
{% endhint %}
