проблема с Unity prefabs

у меня есть префаб машины, и Ui текст который что то вроде счетчика, когда машина проходит через колайдер к переменной добавляется +1 и и выводится в текст, но когда я дублирую префаб машины , то от нее уже не добавляется к переменой. при этом через дебак я понял , что на вход и выход тригер реагирует, с такой проблемой встречаюсь впервые и нет вообще никаких идей в чем проблема , подскажите плиз

public int countGate = 0;
public Text textCountGate;
void Start()
{
    textCountGate = GetComponent<Text>();
}

// Update is called once per frame
void Update()
{
    if (textCountGate == null)
    {
        textCountGate = GameObject.Find("Text").GetComponent<Text>();

    }
    textCountGate.text = "Gate Count " + countGate;
}


private void OnTriggerEnter(Collider other)
{
    Debug.Log("On");
    if (other.gameObject.tag == "Gate")
    {
        countGate++;
    }
}
private void OnTriggerExit(Collider other)
{
    Debug.Log("Exit");
}

}


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

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

Резюмирую для смотрящих этот вопрос в возможном будущем: Ошибка была в том, что все префабы машин ссылались на один Text. Решается это либо созданием отдельного Text для каждой машины, либо, так скажем, не использованием нескольких машин одновременно.

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

→ Ссылка