一个简单的项目在电话上摇动,并且在编辑器中以相同的FPS正常工作

问题描述 投票:-1回答:2

这里有2个来自编辑器和电话的视频:https://drive.google.com/drive/folders/1gs0Ik9EojhbbPUZh0lNmPigVHWpAjERi?usp=sharing

在电话中的视频中,您可以看到行星如何快速地上下颠簸(实际上,箭头在颠簸)。

此处为箭头指向行星中心的代码,用于控制和移动。

    private void Update()
    {
      body.transform.rotation = Quaternion.FromToRotation(body.transform.up, (body.transform.position - transform.position).normalized) * body.transform.rotation * Quaternion.Euler(0, body.GetComponent<ArrowController>().Joystick.Horizontal  * 110 * Time.deltaTime, 0);
      if (Math.Abs((body.transform.position - transform.position).magnitude - body.OrbitRadius) > 0.01)
      {
        float shift = body.OrbitRadius - (body.transform.position - transform.position).magnitude;
        body.transform.position += body.transform.up * shift;
      }
      body.transform.position += body.transform.forward * Speed * Time.deltaTime;
    }

为什么会这样?

c# unity3d game-development unity-editor
2个回答
1
投票

通常,不要设置对象的位置和旋转。


0
投票

我添加了transform.Rotate()和transform.Translate(),但没有帮助。我不知道它是如何工作的,为什么问题只出现在电话上,但我找到了解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.