В настоящее время я изучаю основы Unity и, , как всегда, когда кто-то изучает что-то новое , я немного застрял.
Есть падающий куб, который становится неактивным, когда сталкивается с чем-то. Я планировал создать родительский скрипт, который проверяет, активен ли куб или нет. И когда он неактивен, он выводит состояние логического значения eActive
в консоли.
Но всякий раз, когда падающий куб сталкивается с чем-то, он исчезает, но вывод логического значения по-прежнему верен.
Оба сценария:
Enemy.cs
using UnityEngine;
public class Enemy : MonoBehaviour {
GameObject enemy;
// Use this for initialization
void Start ()
{
enemy = GameObject.Find("Enemy");
enemy.SetActive(true);
}
public void OnCollisionEnter(Collision collision)
{
enemy.SetActive(false);
}
}
EnemySpawn.cs
using UnityEngine;
public class EnemySpawn : MonoBehaviour {
GameObject enemy;
public bool eActive ;
// Use this for initialization
void Start ()
{
enemy = GameObject.FindWithTag("Enemy");
eActive = enemy.activeInHierarchy;
Debug.Log(eActive);
}
// Update is called once per frame
void Update ()
{
Destroyed();
}
void Destroyed()
{
if (!eActive)
{
Debug.Log(eActive);
}
}
}
Хотелось бы услышать, что я делаю неправильно, и если есть лучшие способы делать такие вещи в Unity!
Большое спасибо заранее:)