Как я могу отключить конкретный сборный с функцией - PullRequest
0 голосов
/ 30 марта 2020

Я думал, что это будет так же просто, как положить gameObject.setActive (false); в функции, но когда функция вызывается, ничего не происходит. Включенная кнопка воспроизведения снова работает, как и debug.logs. Любая помощь будет оценена, спасибо.

    void EndBattle()

{
    playAgain.SetActive(true);

    if (state == BattleState.WON)
    {
        enemyPrefab.SetActive(false);
        Debug.Log("won");
    }
    else if(state == BattleState.LOST)
    {
        playerPrefab.SetActive(false);
        Debug.Log("lost");
    }

}

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Я понял, я отключил сам сборник, когда я должен был отключить ссылку на него.

0 голосов
/ 30 марта 2020

Вместо того, чтобы делать это

Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);

do

предположим, что ваш скрипт называется MyScript.cs

public static GameObject prefabSpawned;

...

prefabSpawned = Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);

, тогда, если Вы хотите деактивировать его в любой момент, выполните

MyScript.prefabSpawned.SetActive(false);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...