我开始团结一致地制作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);
问题是您要用两种不同的脚本来移动他:
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