【问题标题】:Unity C# First Person Script not MovingUnity C#第一人称脚本不动
【发布时间】:2015-04-15 17:56:24
【问题描述】:

我对 Unity 很陌生,我决定制作一个简单的第一人称游戏,但是我的脚本只允许玩家环顾四周,不能移动。我使用过 AddForce,但是我不确定我是否正确地完成了它。

public float walkSpeedForward = 5f;
public float walkSpeedStrafe = 4f;
public float walkSpeedBack = 3f;
public float sprintMultiplier = 2f;
public Camera cam;
public float sensitivityX = 0f;
public float sensitivityY = 0f;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -60F;
public float maximumY = 60F;
public Rigidbody rb;
float rotationY = 0f;


// Use this for initialization
void Awake () {
    rb = GetComponent<Rigidbody>();
    rb.freezeRotation = true;
}

// Update is called once per frame
void Update () {
    float rotationX = cam.transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
    rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
    rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
    cam.transform.localEulerAngles = (new Vector3(-rotationY, rotationX, 0f));

}
void FixedUpdate()
{
    rb.AddForce (new Vector3 (Input.GetAxis ("Horizontal") * walkSpeedStrafe * Time.deltaTime, 0, Input.GetAxis ("Vertical") * walkSpeedForward * Time.deltaTime));
}

【问题讨论】:

标签: c# unity3d game-physics


【解决方案1】:

不要使用 AddForce,它是物理推动对象。实际上并不适合移动角色。

您可以学习如何正确制作脚本,甚至可以通过点击使用现成的脚本

资产>导入包> 字符。这个包已经有你正在寻找的角色声音和脚本。如果需要,您可以只选择脚本,但我建议您将它们全部导入,因为您正在尝试学习它。所以你会知道如何附加声音、控件和模型。当你从这个包中学习时。仅供参考,您无需下载,它已经在您的计算机上。

观看此视频Click Here

只需要您 12 分钟的时间。

【讨论】:

  • 我正在尝试学习脚本的基础知识,在遵循您的建议后,我设法完成了脚本。虽然它很有帮助,但我正在寻找一种更简单的解决方案,我可以自己实施和使用,而不是简单地理解。这些脚本涵盖了各种各样的主题,当我对它们有了更好的理解时,我宁愿回到它们,因为它们对于初学者来说似乎很复杂,只需阅读并完全掌握。他们是不是让我更容易找到诸如此类的基础知识,包括以不太复杂的方式回答我的特定问题的东西?
  • Unity3D 已经有一个文档可以 100% 满足您的需求。几乎和你正在做的一样。你想要文档还是想要 12 分钟的视频?
  • 点击我的答案上的链接
猜你喜欢
  • 2017-09-17
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多