Gameobject таймер в единстве

Я пытаюсь создать единую игру, в которой есть игровой объект (скажем, мяч), и после отведенного времени (5 секунд) этот игровой объект исчезает, какая-либо подсказка в коде??

3 ответа

Самый простой метод - использовать метод Destroy(), передавая объект и таймер. Пример:

Destroy(gameObject, 5);

Вы можете использовать сопрограмму для таймера. Это немного сложнее, чем другие ответы, но это хорошая практика для использования сопрограмм. Например:

IEnumerator DestroyObject(GameObject object, int time) {
yield return new WaitForSeconds(time);
Destroy(object);
}

Если этот скрипт подключен к контроллеру или чему-либо еще, кроме игрока:

public GameObject player;

//Wherever the player is supposed to be destroyed 
{
DestroyObject(player, 5);
}

Если этот скрипт прикреплен к игроку:

//Wherever the player is supposed to be destroyed
{
DestroyObject(this.gameObject, 5);
}

Ну, вы можете попробовать использовать метод Invoke, который через некоторое время вызовет указанный вами метод.

void Start()
{
    Invoke("DestroyMyObject", 5);
}

void DestroyMyObject()
{
    this.Destroy(this.gameObject);
}

Если вы хотите вызывать какой-либо метод повторно, вы можете использовать InvokeRepeating. Вот вся документация:

Вызывать документы

InvokeRepeating docs

Другие вопросы по тегам