Unity 3D - 使用刚体的第三人称角色运动

时间:2016-05-05 19:48:07

标签: c# unity3d camera game-physics

我是Unity的新手,试图制作我的第一个游戏(第三人称射击游戏)。 现在已经超过一个星期,我一次又一次地尝试使用刚体组件而不是字符控制器或简单的transform.Translate来让我的角色移动。

自从一周浏览有关它的主题以来,我已经打开了大约30个网页,但我没有找到任何东西(几乎让我觉得我正在尝试做一些不可能的事情......)。

所以,我想像Splinter Cell Blacklist中一样移动我的角色,并让相机用十字线控制鼠标(如果我拍摄,角色会旋转,如果没有面向目标然后拍摄)。 / p>

对于运动,如果不能使用刚体,那么我将使用其他人之一,只是因为我喜欢刚体所具有的真实感觉。

如果有一个教程分解为真正理解,那将是伟大的或只是一些带注释的代码(我有一个C#背景)。

float moveSpeed = 6f;            // Player's speed when walking.
float rotationSpeed = 6f;
float jumpHeight = 10f;         // How high Player jumps

Vector3 moveDirection;

Rigidbody rb;

// Using the Awake function to set the references
void Awake()
{
    rb = GetComponent<Rigidbody>();
}

void FixedUpdate()
{
    Move();
}

void Move ()
{
    float hAxis = Input.GetAxis("Horizontal");
    float vAxis = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(hAxis, 0f, vAxis);
    rb.position += movement * moveSpeed * Time.deltaTime;
}

1 个答案:

答案 0 :(得分:1)

我的想法。 如果你想要真正的感受,你需要在角色身体的适当部分使用rigidbody.addforce你的角色。不是rigidbody.position

希望帮助。