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