gpt4 book ai didi

unity-game-engine - Unity 在运行时生成大量对象,运行缓慢

转载 作者:行者123 更新时间:2023-12-02 16:39:37 24 4
gpt4 key购买 nike

我创建了一个简单的项目,其中大约。场景中创建了 7000 个立方体(使用 VR 相机),但问题是当我移动相机查看所有立方体时,FPS 变得非常糟糕,大约为 5-6 帧。我的电脑是 i7 和 GTX 1070,我认为它必须毫无问题地绘制数十万个立方体。真的,我看了minecraft,看起来画立方体没有问题))

所以问题是是否可以优化场景,以便所有立方体都通过一次调用或其他方式绘制以提供良好的性能?

实际上,我将所有立方体设为静态,并且没有纹理,只有标准 Material ......

现在的样子是这样的: enter image description here

我正在使用默认的定向光,最好不要更改标准着色器,因为它可以很好地处理光线。

这是我生成立方体的方法:

private void AddCube(Vector3 coords)
{
var particle = (Transform)MonoBehaviour.Instantiate(prototype.transform, holder.transform);

SetScale(particle);
SetPosition(particle, coords);

cubes.Add(particle.gameObject);
particle.gameObject.isStatic = true;

}

private void SetScale(Transform particle)
{
particle.localScale = new Vector3(Scale, Scale, Scale);
}

private void SetPosition(Transform particle, Vector3 coords)
{
particle.position = coords;
}

这是统计信息的截图: Stats screenshot我这里的帧率为 41 fps,因为我将相机从立方体移开,以便为统计面板提供干净的背景。实际上,在我将立方体设置为“静态”后,FPS 取决于立方体在屏幕上是否可见。

最佳答案

该问题很可能是由您实例化的单个对象的数量引起的。如果多维数据集在生成后没有改变其变换,您应该能够使用 StaticBatchingUtility 将它们合并为一批。

生成立方体后调用此函数。

StaticBatchingUtility.Combine(GameObject cubesRoot);

关于unity-game-engine - Unity 在运行时生成大量对象,运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com