Unity3D控制一个球

时间:2017-08-05 20:22:50

标签: c# unity3d

在Unity3D中,我正在努力控制球。我的目标如下:

  • 让球旋转
  • 向球方向移动
  • 确保在球移动时球在视觉上旋转

我试图做的事情几乎是用我写的character controller脚本完成的:

transform.Rotate (new Vector3(-Input.GetAxis ("Horizontal") * rotationSpeed, 0, 0));
Vector3 forward = Input.GetAxis ("Vertical") * transform.forward * moveSpeed;

controller.Move (forward);
controller.SimpleMove (Physics.gravity);

我对这个剧本的问题是球在视觉上不会“滚动”。

我尝试使用Rigidbody

解决此问题
float movementHorizontal = Input.GetAxis("Horizontal");
float movementVertical = Input.GetAxis("Vertical");

Vector3 movementVector = new Vector3(movementHorizontal, 0.0f, movementVertical);
GetComponent<Rigidbody>().AddForce(movementVector * moveSpeed * Time.deltaTime);

但是在这种情况下,你不能像第一个例子那样使用WAD旋转180度。虽然它确实解决了视觉问题。

如何让我的球能够用“A”和“D”键旋转,然后朝着“W”方向朝球方向旋转,同时还能在视觉上旋转?

1 个答案:

答案 0 :(得分:2)

看看这个例子: http://unity3d.azurewebsites.net/Labyrinth/

  • 用箭头键移动球
  • 使用键盘移动相机(#5将追逐)
  • 使用 - +键
  • 放大/缩小
  • 使用V键更改视角

运动背后的代码在这里:
https://github.com/heldersepu/hs-unity/blob/master/Labyrinth/Assets/Movement.cs