我正在研究2D自上而下的开放世界游戏,其中有一个可以通过键盘功能移动的角色。该运动是由Rigidbody.AddForce()引起的。
问题在于,在不同的屏幕尺寸下,移动速度是不同的。
这是简单的代码:
void FixedUpdate()
{
if (Input.GetButton("Move"))
rigidbody.AddForce(transform.forward * speed);
}
角色的质量是相同的,浮动速度是相同的,但是,当我将游戏视图切换为全屏显示后,角色的移动明显更快了。 (这很奇怪,表明这不是性能问题。)
我试过测试独立版本,在那里一切都很好(但是在android版本中看起来有点慢。)但是我需要在编辑器中有一个共同的速度,因为我必须设计取决于时序和时序的级别取决于速度。
答案 0 :(得分:3)
您是否尝试将速度与Time.fixedDeltaTime相乘? 如果它不起作用,请尝试依赖于平台的编译:
#if UNITY_STANDALONE_WIN
//do something
#elif UNITY_ANDROID
// do something
#endif
答案 1 :(得分:2)
物理在 WorldSpace 中工作,与 ScreenSpace 没有任何关系,因此您的问题超出了看起来的范围。预计Android上的性能会下降,但在独立运行时,请确保使用 FixedUpdate 进行物理操作(在此处进行操作),并确保没有造成 FixedTimeStep 在更改期间发生变化游戏。