Не обновляется переменная в Unity

Есть код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Trigger_Destroy : MonoBehaviour
{
    public int score=0;
    
    void Start()
    {
        GameObject attached = gameObject;
        _tag = gameObject.tag;
    }
        
    void OnTriggerEnter (Collider other)
    {
        score +=1;
        Debug.Log(score);
    }  
}

Когда персонаж входит в триггер, значение счета не обновляется. Сколько бы раз я не собирал триггер, в консоли счет всегда равен единице.

Как мне сделать чтобы счет обновлялся, когда я беру триггер?


Ответы (2 шт):

Автор решения: zex1l

Посмотри вот это https://www.youtube.com/watch?v=b9XcnmPZjB8&t=5s, там все подробно рассказано. Скорее всего ты выставил не те настройки в Триггере. В методе start(),зачем создаешь экземпляр своего gameObject если ты можешь напрямую к нему обращаться, _tag не объявлен нигде. И сделай проверку в OnTriggerEnter какой объект входит в колизию, иначе любой объект который попадет в колизию будет увеличивать твой счетчик.

→ Ссылка
Автор решения: Student_PNIPU

Моя ошибка была в том, что приложенный скрипт, который считал очки, висел на объектах, которые создавались в начале игры, а потом, когда я их собирал, они удалялись.Очки, которые я пытался считать, удалялись вместе с объектами, из-за чего в консоли всегда была единица.

Создал на своем игроке новую переменную "score" и добавляю значения к ней и все заработало.

→ Ссылка