4

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

这是简单的代码:

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

角色的质量是一样的,漂浮的速度是一样的,但是,当我将游戏视图切换到全屏后,显然角色的移动速度更快。(这很奇怪,表明这不是性能问题。)
我尝试测试独立构建,那里一切都很好(但是在 android 构建中似乎有点慢。)但我需要有一个共同的速度在编辑器,因为我必须设计取决于时序的关卡,而时序取决于速度。

4

2 回答 2

5

物理在WorldSpace中工作,与ScreenSpace无关,所以你的问题超出了它的表面。android 上的性能下降是意料之中的,但在独立时,请确保您使用FixedUpdate进行物理操作(您在此处执行此操作)并确保在游戏期间没有任何事情导致FixedTimeStep发生变化。

于 2019-04-04T17:34:54.620 回答
3

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

    #if UNITY_STANDALONE_WIN
        //do something
    #elif UNITY_ANDROID
        // do something
    #endif
于 2019-03-27T01:28:43.087 回答