Unity C#respawning prefab

时间:2017-03-14 18:38:18

标签: c# unity3d 2d

我正在按照本教程https://www.youtube.com/watch?v=L0tl0CwPYIc开发一款愤怒的小鸟风格游戏。我已经成功完成并按预期工作但现在我正在尝试实施重生功能,以便一次又一次地抛出球。我把球作为预制件并称之为。球重新出现成功,但它没有连接刚体或线渲染器(弹簧),因此没有应用物理。有什么想法吗?感谢

预制设置检查器:https://gyazo.com/7d03b8b99033a34b3bd572451cb3eae2

1 个答案:

答案 0 :(得分:0)

您可以尝试删除预制件并从场景中的GameObject重新创建它。

但除非你在一定时间内需要不止一个球,我建议你采用不同的方法。

您可以简单地使用gameObject.SetActive(false)停用球,重置其组件中的值并将其移回其起始位置,而不是销毁和重新实例化预制件。然后重新激活它并假装它是另一个。

InstantiateDestroy是缓慢的方法,通常建议尽量减少使用。

即使你在场景中需要不止一个球,也有办法避免实例化。如果您有兴趣,请尝试在Unity中查找对象池。