RigidBody.velocity不会向右移动[关闭]

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

我开始团结一致地制作3D游戏,在尝试制作控制器时遇到了问题这是脚本:

    float X = Input.GetAxisRaw("Horizontal");
    float Z = Input.GetAxisRaw("Vertical");
    RB.velocity = new Vector3(X * Speed * Time.deltaTime, 0, Z * Speed * Time.deltaTime);

这是旋转播放器和照相机的脚本:

    float MouseX = Input.GetAxis("Mouse X") * MouseSensitivity * Time.deltaTime;
    float MouseY = Input.GetAxis("Mouse Y") * MouseSensitivity * Time.deltaTime;
    XRotation -= MouseY;
    XRotation = Mathf.Clamp(XRotation, -90, 90);
    transform.localRotation = Quaternion.Euler(XRotation, 0, 0);
    Body.transform.Rotate(Vector3.up * MouseX);
c# visual-studio unity3d 3d
1个回答
0
投票

问题是您要用两种不同的脚本来移动他:

RB.velocity = new Vector3(X * Speed * Time.deltaTime, 0, Z * Speed * Time.deltaTime);

transform.localRotation = Quaternion.Euler(XRotation, 0, 0);

仅选择一个,在这种情况下,我将仅使用RB.velocity,实际上不应该直接设置旋转,并且transform.localRotation =将无法正常工作。请改用Transform.Rotate。

https://docs.unity3d.com/ScriptReference/Transform.Rotate.html

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