我正在使用 C# 在 Unity 中创建一个 2.5D 格斗游戏。目前,我正在尝试让玩家周围出现一个保险杠,并在一段时间后消失。我已经设法让保险杠出现和消失一次,但是在那之后,当我尝试让保险杠再次出现时,Unity 对我有一个错误:“'GameObject' 类型的对象已被破坏,但你仍在尝试访问它。”
根据“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);
}
}
我希望游戏对象“BumperPrefab”会出现,停留 0.2 秒然后消失。我应该可以重复多次,但实际发生的是我只能这样做一次,然后出现错误“'GameObject'类型的对象已被破坏,但您仍在尝试访问它”出现了,我不能让 BumperPrefab 再次出现。
任何帮助深表感谢!