🖼️Hint System
The best to teach player a new mechanic

When introducing new mechanics, like a fishing system, it's usually a good idea to present a brief tutorial explaining to the player how the mechanic works, this is where the hint system comes in.
This is a reusable, multi-panel tutorial system designed to introduce players to new mechanics. It guides users through a sequence of panels with smooth transitions, and persistent “already seen” tracking via PlayerPrefs.
🔧 Inspector Settings

Timing
Fade In/Out Duration Duration (in seconds) for the global panel fade-in and fade-out animations.
UI References
Panels Array of
CanvasGroups—each representing one step in the tutorial. Panels are cycled sequentially.Finish Button Reference to the “Close”/“Got It” button on the last panel. Triggers panel dismissal and game unpausing.
Toggle Paused
BoolReference(e.g.,VariableReference<bool>from Malbers) bound to your global pause state (e.g., used byAnimalController). Set totruewhile the tutorial is active.
Debug / Testing
Always Show If enabled, skips the
PlayerPrefscheck and displays the tutorial every time—ideal for development and QA.
Internally uses PlayerPrefs.GetInt("HasSeenFishingHint", 0) to track completion. Set to 1 after the player finishes.

💡 Key Features
Crossfade Navigation: Smooth transitions between panels using simultaneous fade-out/fade-in.
Time-Scale Independent: Uses
Time.unscaledDeltaTime—works correctly even when the game is paused.Auto-Focus Support: Detects
AutoFocusButtonon panels for accessibility/navigation (e.g., gamepad/keyboard support).Pause Integration: Automatically pauses the game on entry and resumes on exit via
togglePaused.Persistent State: Remembers if the player has completed the tutorial, unless overridden by
Always Show.
🎯Usage
The Fishing Rod, via On Picked Game event calls FishingInteraction().

Last updated