Я создаю 2.5D файтинг в Unity с C #.В настоящее время я пытаюсь заставить бампер появляться вокруг плеера и исчезать через определенное время.Мне удалось заставить бампер появляться и исчезать один раз, но после этого, когда я пытаюсь заставить бампер появляться снова, Unity имеет для меня ошибку: «Объект типа« GameObject »был уничтожен, но вы все еще пытаетесьчтобы получить к нему доступ. "
Я пытался использовать команды" instantiate "и" destroy ", следуя инструкции" Brackeys "по 2D-съемке.После того, как после нескольких вопросов на форумах об этой же проблеме, я снова изменил свой код, но проблема сохраняется.
firePoint
- пустой объект, из которого создается экземпляр BumperPrefab.
using UnityEngine;
public class weapon: MonoBehaviour
{
public Transform firePoint;
public GameObject BumperPrefab;
public float lifetime = 0.2f;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
attack();
}
}
void attack()
{
BumperPrefab = (GameObject) Instantiate(BumperPrefab, firePoint.position, firePoint.rotation);
Destroy(BumperPrefab, lifetime);
}
}
Я ожидаю, что GameObject "BumperPrefab" появится, задержится на 0,2 секунды и исчезнет.Я должен быть в состоянии повторить это столько раз, сколько захочу, но на самом деле происходит то, что я могу сделать это только один раз, а затем появляется ошибка «Объект типа« GameObject »уничтожен, но вы все еще пытаетесь получить к нему доступ»появляется, и я не могу заставить BumperPrefab появляться снова.
Любая помощь очень ценится!