У меня есть переменная gethealth в двух разных скриптах в Unity. Я создал его в первом скрипте под названием PlayerController в качестве статического публичного плавающего объекта. Когда я пытаюсь получить доступ к нему из другого скрипта (называемого «Здоровье»), он отображает что-то совершенно другое, хотя это должна быть та же самая переменная.
Я проверил, что это то же самое, используя debug.log в обоих скриптах, и каким-то образом он отображает что-то другое. Где-то по пути это должно было измениться.
Первый скрипт (класс PlayerController, в котором я создаю и устанавливаю переменную gethealth):
public float health = 250f;
static public float gethealth;
private void OnTriggerEnter2D(Collider2D col)
{
PlayerLaser missile = col.gameObject.GetComponent<PlayerLaser>();
if (missile)
{
health -= missile.GetDamage();
gethealth = health;
Debug.Log(gethealth);
missile.Hit();
}
}
Второй сценарий (класс здоровья):
void Start()
{
Debug.Log(PlayerController.gethealth);
Text myText = GetComponent<Text>();
myText.text = PlayerController.gethealth.ToString();
}
Два файла debug.logs показывают разные результаты, в то время как они должны показывать одинаковые