Как использовать оператор «if» для удаления клона игрового объекта? - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу использовать оператор if, чтобы очистить все клоны в моей сцене во время игры, но когда я добавил оператор «если», он вообще ничего не делает.

I 'мы пытались добавить Gameobject. к клону в круглых скобках, но он ничего не делает, только выдает ошибку, в которой говорится, что «Gameobject» не существует в текущем контексте.

Это «if»"Statement:

if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            Destroy(clone);
        }

Как было сказано выше, оператор if должен очистить все клоны в сцене, кроме оригинала, но это совершенно не имеет значения.

1 Ответ

0 голосов
/ 19 сентября 2019

Вопрос неопределенный, но я думаю, что понимаю достаточно, чтобы ответить.

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

Проблема заключается в том, что ваш клон Gameobject не назначен.Переменная похожа на пустую оболочку или шелуху, которая может содержать и указывать на игровой объект, который у вас есть внутри игры.

Вот очень простой кусок кода для поведения, которое вы описали:

[SerializeField] Gameobject clonePrefab; //You have to drag and drop a prefab from Unity here
List<Gameobject> clones=new List<Gameobject>();

void Start(){
    for(i=0,i<10,i++){
        clones.Add(Instantiate(clonePrefab));
    }
}

void Update(){
    if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            for(i=0,i<clones.Count,i++){
                Destroy(clones[i]);
            }
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...