Я создаю 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 снова появиться.
Любая помощь высоко ценится!
(GameObject)
при создании экземпляра, просто используйтеvar obj = Instantiate(...)
Затем уничтожьтеobj
- person Ali Kanat   schedule 08.02.2019