Core Components
Learning what is what.
Most of the work is done by filling a Tooltip Collection (regular Unity list), setting up triggers on specific objects using a template-based component and, if needed, changing Scriptable Objects settings.
Some components can be edited to fit your project’s needs. See Methods for Editing.

Scene References
A binding component that contains references to all the system components. Scene References contains public fields in inspector to interact with:
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 (2D/3D).
Main Camera (required). Here, assign the camera of the current scene.
Handle Camera Switching. If enabled, it attempts to switch to another active camera when the current one is disabled or removed from the scene.
Enable Debug. If enabled, outputs system status logs to the console.
Other settings for advanced usage:
CurrentDevice (required) & Current Scene. Unique string name for the current Tooltip System on the scene. If multiple systems are present on the scene, they should be distinguished by this string.
Localizable Txts (required). Reference to the object that stores all texts and translations for every tooltip in the project.
ForMobileBuildOnly. If this parameter is set to True, the system will only play on mobile devices. Keep several different tooltip systems for different device types within the same scene.
ForPCBuildOnly. If this parameter is set to True, the system will only play on desktop devices.
Links to the default visual settings and avaliable prefabs.
Auto Initialized. Flag for auto initialization when the TutorialSystem is first added to the scene.
This script contains public methods for manual invocation from other non-template contexts. See Methods For Manual Calls.
Dynamic Hover Tooltips (DHT)
The main component containing Tooltip Collection for current scene and public fields in inspector to interact with:
Edit Tooltip Texts > button for quickly jumping to the Localizable Texts scriptable object to edit texts.
Public Tooltip Collection list. Each list element contains logic for showing a tooltip in a specific context - for example, detecting objects with the Card tag, displaying a frame tooltip on click, and hiding it on the next click anywhere. See. Supported Interactions.
Copy Sequence, Paste Sequence, and Clear Sequence buttons. Designed to simplify manual work with the list: copy, paste, and clear it (including connected Localizable Texts).

Tooltip Data
A script responsible for the content and display of tooltips in the Tooltip Collection of DynamicHoverTooltips component.
Tooltip Player
The main component responsible for the tooltip playback logic. This script finds which tooltips should be shown at the moment and tracks input for their completion. It also saves the progress of completed once / once per session / reusable tooltips. It contains public field in inspector to interact with:
Open Progress Files > button or quickly opening the folder where the JSON with session-to-session progress is stored.
Reset Progress button. Available at runtime. Resets the tooltip progress on the current scene for testing purposes.
Tooltip Trigger
A component that can be added to any object to manually trigger a tooltip from collection. For example, it shows a hint when the object is aimed at by the center of the camera, and hides the hint when the aim stops. It contains the following public fields:
Linked Tooltip Name (required). Requires the name of the tooltip from collection that contains visual hints associated with this object.
Trigger (required). The interaction template required with the object to show and hide the hint, for example, Hover. See. Supported Interactions.
Set Step Text and text fields. When the step starts, these local texts will be passed to the tooltip from collection. You can also pass keys instead of direct text for automatic localization by the system.

Tooltip Visual Manager
This component helps enable and destroy or reuse various visual hints in the scene.
Input Controller
This component tracks all input for recording and playback. It supports both mobile and PC. Contains public field in inspector:
Input System Type for switching between the new and old input systems.
Localizable Texts Scriptable Object
Script that contains the logic for tooltip localization. It is linked to the Localizable Txts object in Scene References. Inside the script, replace the predefined AddCustomLanguage entries with your own languages in the public enum Language.
Localized Tooltip

A component for localizing tooltip texts inside prefabs, working directly with a CSV table so that the tooltip text is displayed automatically according to the current language. It requires a reference to a LocalizableTexts Scriptable Object, a TMP Text of the object, and the key corresponding to the table row containing the text and its translations.
UI Pointer Animation & UI Pointer Settings
Components required for proper UI pointer functionality. UI Pointer Animation is a required component for any UI Pointer prefab, ensuring it moves relative to its target and handles appearance, disappearance, and idle animations. UI Pointer Settings allows to create a scriptable object with settings used for pointer movement and animations. See Supported Visuals.
UI Pointer Animation contains the following public fields:
Settings (required). Assign a scriptable object with animation settings for the current pointer.
Text Element. If the prefab managed by this component contains a TextMeshPro, assign it here.
Frame Corner Prefab. If the prefab is meant to be a frame, assign here the object with the Image for the top-left corner of the frame. See Prefabs > UIPointers > UIFramePointer.
World Pointer Animation & World Pointer Settings
Components required for proper world-space pointer functionality. World Pointer Animation is a required component for any World Pointer prefab, ensuring it moves relative to its target and handles appearance, disappearance, and idle animations. World Pointer Settings allows to create a scriptable object with settings used for pointer movement and animations. See Supported Visuals.
World Pointer Animation contains the following public fields:
Settings (required). Assign a scriptable object with animation settings for the current pointer.
Text Element. If the prefab managed by this component contains a TextMeshPro, assign it here.
Frame Corner Prefab. If the prefab is meant to be a frame, assign here the object with the SpriteRenderer for the top-left corner of the frame. See Prefabs > WorldPointers > 2D > 2DFramePointer.
Iris Cutout Mask
A component that can be attached to the Image of UI Prefab with Raycast Target enabled, used to "cut out" an area where raycast is allowed. It is used to block unwanted interactions while keeping the target area accessible. The component allows customization of the cutout’s shape and size. 'Enable Visual Mask' creates a visual area around the “hole” using the selected color. Component requires a Target Image and its Rect Transform to be assigned; if not set manually, done automatically on Awake.
ComponentTypeSelector, DynamicHoverTooltipsEditor, GrayedAttribute, InsCutoutMask, LocalizableTextsEditor, OpenLocalizationAttribute, ParameterSelector, ReadOnlyAttribute, SceneReferencesEditor, ShowIfAttribute, TooltipPlayerEditor - auxiliary components for clear asset design and input optimization.
Last updated