Unity C# 重生预制件
Unity C# respawning prefab
我目前正在按照本教程开发一款愤怒的小鸟风格的游戏https://www.youtube.com/watch?v=L0tl0CwPYIc。我已经成功完成并按预期工作,但现在我正在尝试实现重生功能,以便一次又一次地抛出球。我把球做成了预制件并给它取了名字。球重新出现成功,但它没有连接刚体或线渲染器(spring),因此没有应用物理。有什么想法吗?谢谢
您可以尝试删除预制件并从场景中的 GameObject 重新创建它。
但是除非您在给定时间需要在现场出现多个球,否则我建议您采用不同的方法。
无需销毁并重新实例化预制件,您只需使用 gameObject.SetActive(false)
来停用球,重置其组件中的值并将其移回其起始位置。然后重新激活它并假装它是不同的。
Instantiate
和 Destroy
是缓慢的方法,通常建议尽量减少使用它们。
即使场景中需要多个球,也有办法避免实例化。如果你有兴趣,试试在 Unity 中寻找对象池。
我目前正在按照本教程开发一款愤怒的小鸟风格的游戏https://www.youtube.com/watch?v=L0tl0CwPYIc。我已经成功完成并按预期工作,但现在我正在尝试实现重生功能,以便一次又一次地抛出球。我把球做成了预制件并给它取了名字。球重新出现成功,但它没有连接刚体或线渲染器(spring),因此没有应用物理。有什么想法吗?谢谢
您可以尝试删除预制件并从场景中的 GameObject 重新创建它。
但是除非您在给定时间需要在现场出现多个球,否则我建议您采用不同的方法。
无需销毁并重新实例化预制件,您只需使用 gameObject.SetActive(false)
来停用球,重置其组件中的值并将其移回其起始位置。然后重新激活它并假装它是不同的。
Instantiate
和 Destroy
是缓慢的方法,通常建议尽量减少使用它们。
即使场景中需要多个球,也有办法避免实例化。如果你有兴趣,试试在 Unity 中寻找对象池。