Unity3d 为什么RigidbodyAddForce不移动我的太空舱?
我的代码 在“更新”功能中,用于移动播放器的功能没有执行任何操作Unity3d 为什么RigidbodyAddForce不移动我的太空舱?,unity3d,rigid-bodies,Unity3d,Rigid Bodies,我的代码 在“更新”功能中,用于移动播放器的功能没有执行任何操作 此外,grounded函数当前设置为返回trueNvm,我发现,我只是没有给它足够的力我还不能评论,否则我会问更多问题,但以下是一些我尝试帮助调试的东西: founded()返回真值吗?尝试在FixedUpdate中放入一条打印Ground()的print语句,以确保它返回true 你的速度够快吗?尝试将其设置为10000之类的数字。有可能,如果你的物体因为某种原因是一个很大的尺度,它在移动,但你不能分辨,因为它是如此轻微的移动
此外,grounded函数当前设置为返回trueNvm,我发现,我只是没有给它足够的力我还不能评论,否则我会问更多问题,但以下是一些我尝试帮助调试的东西:
它应该工作,确保速度变量不是0 此外:
- 您应该在FixedUpdate()中执行与刚体相关的所有操作,但将输入保留在Update()中
Time.deltaTime
替换为Time.fixedDeltaTime
-
你考虑使用轴代替基于键码的输入吗?
if (Input.GetKey(KeyCode.W) && Grounded()) rb.AddForce(transform.forward * speed * Time.deltaTime, ForceMode.Acceleration);
if (Input.GetKey(KeyCode.S) && Grounded()) rb.AddForce(-transform.forward * speed * Time.deltaTime, ForceMode.Acceleration);
if (Input.GetKey(KeyCode.D) && Grounded()) rb.AddForce(transform.right * speed * 0.75f * Time.deltaTime, ForceMode.Acceleration);
if (Input.GetKey(KeyCode.A) && Grounded()) rb.AddForce(-transform.right * speed * 0.75f * Time.deltaTime, ForceMode.Acceleration);