gpt4 book ai didi

c# - 角色在移动时振动 30fps

转载 作者:太空狗 更新时间:2023-10-30 00:53:10 26 4
gpt4 key购买 nike

我正在使用 Unity 开发一款 2.5D 手机游戏。为了前后移动角色,我在更新函数中使用了一段代码:

void Update () {

if (shouldMove==true){

transform.Translate(Vector3.forward * 3 * Time.deltaTime);
}
}

因此当游戏以 60 fps 运行时该代码运行良好,但当 fps 降至 30 或更低时,角色在移动时开始振动。我试图用平面地形测试相同的代码并且它运行良好,所以问题可能是角色和地形的碰撞器之间的碰撞。但是,我不明白为什么如果 fps 很高它就可以正常工作。我已经尝试过胶囊对撞机和网格对撞机,但没有人工作过。你怎么认为?我应该尝试使用其他代码吗?

编辑 1:我正在使用胶囊对撞机和刚体。我应该使用角色 Controller 吗?

最佳答案

Sam Bauwens 的回答完全正确,但是,这个问题通常是由于对象过多(尤其是动画对象)引起的。这会使性能恶化很多。

您应该尝试删除一些对象并尝试您的角色是否仍然振动。如果没有,那就意味着我是对的。当然,您不想删除场景中的对象,因此,您可以添加 Assets ,例如 SmartLOD删除那些未显示在屏幕上的对象的几何形状,从而提高游戏的性能。

希望对您有所帮助。

关于c# - 角色在移动时振动 30fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17567564/

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