我有一个角色/刚体,“她”可以转身。当我在Unity中按播放时,如果我向前/向后移动,那很好,她可以向前/向后移动。这是一个好的开始。
但是如果我向左或向右转动她,然后向前/向后走,她现在就向侧面移动。
她是在场景中设置为父级的刚体零部件。
当然这并不难,但是我不知道如何设置她的旋转角度,这样当她旋转时,当我按下按钮将其向前移动时,她将“向前”移动!有很多第一人称射击游戏,您可以旋转和“向前”移动,并且玩家朝正确的方向前进。
目前,我的轮换脚本是这样的:
Vector3 EulerAngleVelocity;
public float rotateSpeed = 250.0f;
void Update() {
if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow))
{
MoveVector = PoolInput();
Move();
}
if (Input.GetKey(KeyCode.RightArrow))
{
EulerAngleVelocity = new Vector3(0, rotateSpeed, 0);
Quaternion deltaRotation = Quaternion.Euler(EulerAngleVelocity * Time.deltaTime);
rigidbody.MoveRotation(rigidbody.rotation * deltaRotation);
}
}
private void Move()
{
rigidbody.AddForce((MoveVector * moveSpeed));
}
private Vector3 PoolInput()
{
Vector3 dir = Vector3.zero;
dir.x = joystick.Horizontal();
dir.z = joystick.Vertical();
if (dir.magnitude > 1)
dir.Normalize();
return dir;
}
最佳答案
您正在移动操纵杆,并相对于WORLD(而不是相对于玩家)添加该方向。如果要相对于RigidBody的方向增加力,则可能要使用的是rigidBody.AddRelativeForce
(documentation)而不是简单的rigidBody.AddForce
。
关于c# - Unity C#:旋转问题,现在方向错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49624152/