c# - 无法破坏 ""的变换。如果你想销毁游戏对象,请改为在游戏对象上调用 destroy

标签 c# unity3d destroy gameobject

我有一个简短的问题。

我有一个由另一个脚本定期访问的对象列表。我想要做的是清除列表并销毁其中的所有对象。这是我用来执行此操作的代码:

FoodTargets 是我的列表的名称...

    destroycounter = FoodTargets.Count;

    for (destroycounter = 0; destroycounter < FoodTargets.Count; destroycounter++)
    {
        Destroy(FoodTargets[destroycounter]);
        FoodTargets.RemoveAt(destroycounter);
    }

这会返回错误:

Can't destroy transform of "". if you want to destroy the game object, please call destroy on the game object instead...

我已经做了好几个小时了,我只想知道我可以使用哪一行代码来销毁列表中的实例化预制件……或者如果可能的话,我可以使用什么代码来销毁列表中的所有实例化预制件一个列表。在此先感谢您的帮助。

最佳答案

利用每个变换指向其游戏对象这一事实。你必须这样做,因为 Destroy()需要 GameObject作为参数。

Destroy(transformReference.gameObject);

在您的代码中它看起来像这样:

Destroy(FoodTargets[destroycounter].gameObject);

您可以在 Transform here 中阅读有关属性的更多信息.

关于c# - 无法破坏 ""的变换。如果你想销毁游戏对象,请改为在游戏对象上调用 destroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23803893/

相关文章:

python - 我如何使 tkinter 中的 destroy() 方法与我的代码一起使用?

c# - ObservableCollection(T).CollectionChanged 事件

c# - 将 List<int> 分配给 IEnumerable<int> 是否有益?

web - 如何将统一网络播放器游戏上传到 Google Drive?

android - onStop() 中的 finish() 之后的 onCreate()

javascript - 将文本工具添加到 Paint App HTML5 Canvas

c# - 如何在svn中只忽略一行?

c# - 将 FLASH 与 ASP.NET 一起使用 - 好还是不好?

ios - 如何防止我的游戏访问麦克风?

c++ - 如何在构造函数完成后立即销毁从 QWindow 对象派生的对象?