Core Components
Learning what is what.
Last updated
Learning what is what.
Last updated
Tutorial Scene References (TSR)
A binding component that contains references to all the system components. It also contains public wrapper methods for manually calling tutorial steps through a script. TSR contains public fields in inspector to interact with:
Main Camera (required). Here, assign the camera of the current scene.
Target Canvas (required). Here, assign the UI canvas of the current scene.
Target World Holder. Here is assigned a parent object where the world hints spawn.
CurrentDevice_ATM (required). Unique string for the current ATM on the scene. If multiple ATMs are present, they should be distinguished by this string. See .
InputTextStrings (required). Reference to the object that stores all texts and translations for every part of the tutorial in the project.
Autostart. Disable this bool to prevent the tutorial from starting automatically. It will only run when manually triggered via TurnOnTutorial()
. See .
Links to the default visual settings and prefabs. See .
Automatic Tutorial Maker (ATM)
The main component for tutorial recording and generation. Not intended for manual editing. This script recognizes the type of each action during recording and generates the most suitable tip for it. For example, when an object is moved into an inventory slot, it recognizes that it's a drag-and-drop action and generates a pointer along with a text label to explain the action. Later, this can be adjusted in the inspector. See . ATM contains public fields in inspector to interact with:
Current Language. The language switch changes the text of all tutorial step hints in the project to the selected language. It is linked to the InputTextStrings
object in TSR.
Start Recording/Stop Recording button. Available at runtime. Used to start recording and generating the tutorial, then save it upon completion.
Public Step Sequence list. Each element in this list represents a tutorial step. It contains information about the step’s start conditions, execution, and visual display.
Copy Sequence, Paste Sequence, and Clear Sequence buttons. Designed to simplify manual work with the list: copy, paste, and clear it.
Step Sequence Player (SSP)
The main component responsible for the tutorial step playback logic. Not intended for manual editing. This script finds which steps the player should take at the moment, tracks input for their completion, and also saves the progress of completed and incomplete steps for each ATM individually. SSP contains public field in inspector to interact with:
Reset Tutorial Progress button. Available at runtime. Resets the tutorial progress on the current scene for testing purposes.
Tutorial Visual Manager (TVM)
This component helps enable and destroy various visual hints in the scene depending on the playback step. Not intended for manual editing.
Input Controller
This component tracks all input for recording and playback. Not intended for manual editing. It supports both mobile and PC. Contains public fields in inspector:
Input System Type for switching between the new and old input systems.
Min Hold Duration. Set the minimum time interval that must pass before a Hold interaction is recognized. It should be greater than 0 to differentiate the input from a click.
Min and Max Swipe Distance, Swipe Angle Tolerance. Similarly, it defines the minimum duration and swipe distance in pixels for Swipe interaction.
Min Drag Distance defines the minimum distance after which an object is considered moved for Drag interaction.
InputStringsScriptableObject
Background Manager, Grayed Attribute, Keyboard Input Helper, KeyCodeExtensions, Read Only Attribute, TutorialSceneReferencesEditor, JoystickTipController - auxiliary components for clear asset design and input optimization.
Joystick Axes contains the axis names in the Input Manager that are needed for joystick input. See .
Script that contains the logic for tutorial localization. It is linked to the InputTextStrings
object in TSR. Inside the script, you replace the predefined AddCustomLanguage
entries with your own languages in the public enum Language
. See .