Включить / отключить компоненты сборных в Unity - PullRequest
2 голосов
/ 13 мая 2019

Как вы видите в скрипте, при функции уничтожения я отключаю компоненты prefab, все идет хорошо в процессе игры, но после остановки игры он остается отключенным, я знаю, что причина в том, что это prefab, поэтому он сохраняет эту информациюно как я могу отключить его только во время игры?Я рассмотрел цикл while, но он разбился, а также функцию Awake.Есть идеи?

private void OnDestroy()
{
    Lose = true;
    ENEMIES.GetComponent<EnemiesMovement>().unit = 0.0f;
    prefenBullet.GetComponent<MeshRenderer>().enabled = false;
    prefenBullet.GetComponent<BoxCollider2D>().enabled = false;
}

1 Ответ

3 голосов
/ 13 мая 2019

Сохраните экземпляр в переменной GameObject, чтобы вы могли позже получить доступ к нему и изменить его в коде. Примерно так:

// Reference to the Prefab. Drag a Prefab into this field in the Inspector.
public GameObject myPrefab;
GameObject myPrefabInstance;

    // This script will simply instantiate the Prefab when the game starts.
void Start()
{
    // Instantiate at position (0, 0, 0) and zero rotation.
    myPrefabInstance = Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
}

private void OnDestroy()
{
    myPrefabInstance.GetComponent<MeshRenderer>().enabled = false;
    myPrefabInstance.GetComponent<BoxCollider2D>().enabled = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...