Как отслеживать каждый созданный объект по отдельности?
По клику на кнопку создаётся куб, и его нужно через 2 секунды удалить. И так с каждым кубом по отдельности, но как отследить отдельный куб я не знаю.
public GameObject cubePrefab; //Ссылка на префаб куба
public void OnClick()
{
Instantiate(cubePrefab);
//Здесь должен быть код, отслеживающий каждый созданный куб по отдельности
Invoke("Delete", 2f)
}
void Delete() //Не работает так как нету части кода в котором отслеживается каждый куб по отдельности
{
Destroy();
}
Ответы (2 шт):
Автор решения: Максим Фисман
→ Ссылка
Создать скрипт куба. Вешать на куб при спавне, а еще лучше создать префаб куба с уже навешенными скриптом:
public class Cube {
private float LifeTime = 2;
public void Update () {
LifeTime -= Time.deltaTime;
if (LifeTime <= 0)
Destroy(gameObject);
}
}
Или:
public class Cube {
private float LifeTime;
public void Start () {
StartCoroutine(Life());
}
private IEnumerator Life () {
yield return new WaitForSeconds(LifeTime);
Destroy(gameObject);
}
}
Автор решения: Lexanom
→ Ссылка
просто сохраняй ссылку на созданный объект, например так
public GameObject cubePrefab;
private GameObject cube;
public void OnClick()
{
cube = Instantiate(cubePrefab);
Invoke("Delete", 2f);
}
void Delete()
{
Destroy(cube);
}