🖼️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 by AnimalController). Set to true while the tutorial is active.

Debug / Testing

  • Always Show If enabled, skips the PlayerPrefs check and displays the tutorial every time—ideal for development and QA.

circle-check


💡 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 AutoFocusButton on 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