在不同的屏幕尺寸下统一不同的物理行为

时间:2019-03-26 20:23:01

标签: unity3d game-physics physx

我正在研究2D自上而下的开放世界游戏,其中有一个可以通过键盘功能移动的角色。该运动是由Rigidbody.AddForce()引起的。
问题在于,在不同的屏幕尺寸下,移动速度是不同的。

这是简单的代码:

void FixedUpdate()
{
    if (Input.GetButton("Move"))
        rigidbody.AddForce(transform.forward * speed);
}

角色的质量是相同的,浮动速度是相同的,但是,当我将游戏视图切换为全屏显示后,角色的移动明显更快了。 (这很奇怪,表明这不是性能问题。)
我试过测试独立版本,在那里一切都很好(但是在android版本中看起来有点慢。)但是我需要在编辑器中有一个共同的速度,因为我必须设计取决于时序和时序的级别取决于速度。

2 个答案:

答案 0 :(得分:3)

您是否尝试将速度与Time.fixedDeltaTime相乘? 如果它不起作用,请尝试依赖于平台的编译:

    #if UNITY_STANDALONE_WIN
        //do something
    #elif UNITY_ANDROID
        // do something
    #endif

答案 1 :(得分:2)

物理在 WorldSpace 中工作,与 ScreenSpace 没有任何关系,因此您的问题超出了看起来的范围。预计Android上的性能会下降,但在独立运行时,请确保使用 FixedUpdate 进行物理操作(在此处进行操作),并确保没有造成 FixedTimeStep 在更改期间发生变化游戏。