Logo

Hint Database

ScriptableObject asset for managing loading screen tip and hint entries

Overview

Hint Database is a ScriptableObject that holds a list of HintEntry items, each with body text and an optional icon sprite. Hints cycle during loading and are displayed via the hintText and hintIcon references on the LoadingScreen component.

Keeping hints in a separate asset makes it easy to localize content, swap tip sets between levels, or share the same database across multiple loading screen prefabs.


Creating a Database

Right-click in the Project window

Select Create -> Evo -> Loader -> Hint Database

Add entries to the Hints list — each entry has a text field and an optional Icon

Assign the asset to the Hint Database field on your loading screens


Properties

NameTypeDescription
selectionModeContentSelectionModeHow the next hint is picked.
hintsList<HintEntry>The hint entries to cycle through.

Hint Entry Fields

FieldTypeDescription
textstringBody text displayed during loading.
iconSpriteOptional icon shown alongside the text. If null, the icon object is hidden automatically.
tableLocalizationTableLocalization table to use (requires Evo Localization to be imported).
tableKeystringKey within the localization table (requires Evo Localization to be imported).

When a localization table and key are both set, the localized string takes priority over the text field. If no localized output is returned, it falls back to text.


Using Multiple Databases

You can assign different databases to different loading screen prefabs — for example, a boss encounter screen with thematic artwork versus a generic level transition. Because databases are ScriptableObjects, they can be shared, duplicated, and edited independently.


Code Example

HintDatabaseExample.cs
using Evo.Loader;
using UnityEngine;

public class HintDatabaseExample : MonoBehaviour
{
    public HintDatabase hints;

    void Start()
    {
        // Clone the asset before modifying to avoid affecting the source
        HintDatabase runtimeDB = Instantiate(hints);

        runtimeDB.hints.Add(new HintDatabase.HintEntry
        {
            text = "Tip: Dodge rolling has invincibility frames.",
        });

        runtimeDB.hints.Add(new HintDatabase.HintEntry
        {
            text = "Tip: Hold the interact button to pick up heavy objects.",
        });
    }
}

Modifying a ScriptableObject asset directly at runtime persists across sessions in the Editor. Use Instantiate(database) to create a runtime clone if you need to add entries dynamically without affecting the source asset.


On this page