如何在 Unity 中前进和/或后退?
Posted
技术标签:
【中文标题】如何在 Unity 中前进和/或后退?【英文标题】:How do I move forwards and/or backwards in Unity? 【发布时间】:2020-11-11 06:36:27 【问题描述】:我试图让我的游戏对象向前和向后移动,但每次我按 w 或 s 时,它都不会移动。对于 a 和 d,它们将使 GameObject 移动。
这是我的代码:
using UnityEngine;
public class PlayerMovement : MonoBehaviour
public Rigidbody rb;
public float forwardForce = 2000f;
public float sidewaysForce = 500f;
void FixedUpdate()
if (Input.GetKey("w"))
rb.AddForce(0, forwardForce * Time.deltaTime, 0);
if (Input.GetKey("a"))
rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0);
if (Input.GetKey("s"))
rb.AddForce(0, -forwardForce * Time.deltaTime, 0);
if (Input.GetKey("d"))
rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0);
任何建议都会很有帮助。
【问题讨论】:
【参考方案1】:Unity 使用 left-handed 轴系统,因此您的向量中的第一个参数您已正确地将左/右放置为向量的 x 参数,但是对于向前和向后您可能希望使用 z 轴(在/ 出)
rb.AddForce(0, 0, forwardForce * Time.fixedDeltaTime);
另外,在固定更新中施加力量对你有好处,但请记住在固定更新时使用Time.fixedDeltaTime
,因为常规 deltatime 在这里可能没有正确的值
如果这没有帮助,在fixedUpdate
期间捕获输入可能会出现一些问题,我认为最好的形式是在update
中捕获输入,并设置一些将在fixedUpdate
中读取的标志应用你的物理学。
【讨论】:
@GeckoGeek 如果有帮助,请考虑接受答案。 See here for more information以上是关于如何在 Unity 中前进和/或后退?的主要内容,如果未能解决你的问题,请参考以下文章
用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?
如何让鼠标按钮 4 / 5(浏览器后退/浏览器前进)在 Firefox 中工作?