如何修复实例化杀死我的性能
本文关键字:我的 性能 何修复 实例化 | 更新日期: 2023-09-27 18:07:40
我将实例化两组游戏对象,每组50个。
private Enemy e1,
e2;
private Stack stack1,
stack2;
for(int i = 0; i < 50; i++)
stack1.Push(Instantiate(e1));
for(int i = 0; i < 50; i++)
stack2.Push(Instantiate(e2));
这个代码减慢了我的场景加载时间。有更好的方法来做到这一点吗?
的重要信息
我在加载场景后立即使用对象。我在所有的场景中都重复使用它们,所以我从不破坏它们。每个对象在Awake()中只有很少的代码。
你可以在场景开始时实例化对象,停用它们,只在需要时激活它们。这样,在开始时就会出现延迟,而通常等待几秒钟是没有问题的。
另一种方法是实例化GameObjects,直到你达到以毫秒为单位设置的时间值,然后停止直到下一帧。这可能起作用,也可能不起作用,这取决于你在做什么。
如果您实例化的实际对象经常被使用,但只持续很短的时间,您可以像我的第一种方法那样做,并在需要时重用它们。搜索"unity Object Pool",你会得到一些不错的结果。