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. Вот вся документация: