Singleton w Unity

Singletony pozwalają na bezpośredni dostęp do danego skryptu bez tworzenia referencji. Singleton oznacza, że na scenie będzie tylko jeden obiekt z danym skryptem.
Przykład użycia Singletona do wyświetlania ilości przeciwników na scenie.

    public static UIManager Instance { get; private set; }
    [SerializeField] TMP_Text txtEnemyCount;
    int enemyCount = 0;
    
    
    private void Awake()
    {
        if (Instance != null && Instance != this)
        {
            Destroy(this);
            // Destroy(this.gameObject);
        }
        else
        {
            Instance = this;
        }
    }

    void Start()
    {
        DisplayEnemyCount();
    }

    void DisplayEnemyCount()
    {
        txtEnemyCount.text = $"Enemy Count: {enemyCount}";
    }

    public void UpdateEnemy(int enemy)
    {
        enemyCount += enemy;
        DisplayEnemyCount();
    }

Jak odwołać się do singletona?

    // Enemy script
    private void OnEnable()
    {
        UIManager.Instance.UpdateEnemy(1);
    }

    private void OnDisable()
    {
        UIManager.Instance.UpdateEnemy(-1);
    }
Scroll to Top