【问题标题】:Unity3D why multiply axis with SPEED?Unity3D为什么将轴与速度相乘?
【发布时间】:2017-01-29 05:35:30
【问题描述】:

我是 Unity 编程的新手...

所以我的问题是:

为什么要倍增

Input.GetAxis("VertOrHorz") * speed

速度。因为我习惯用 += 或 -= 操作符来移动东西。

谁能帮我一个忙,给我解释一下:)。

提前致谢

雅各布

【问题讨论】:

  • 您是否在某处的教程中阅读过此内容? Input.GetAxis() 为您提供 [-1, 1] 范围内的值。将它乘以速度只会改变它的大小,所以你给出的线会产生一个 [speed, -speed] 范围内的数字。有了这个新号码,您可以将它与Transform.Translate()Rigidbody.MovePosition() 等结合使用。也许您可能需要在阅读本文的任何地方重新阅读,以便获得上下文解释?因为无法给出作者这样做的确切原因,只是猜测。

标签: c# unity3d


【解决方案1】:

Input.GetAxis 函数返回从-1f1f0f1f 的值。这个值范围太小了,以至于它不能移动一个对象。

例如,对从Input.GetAxis 返回的值为0.5fRigidbody 施加强制将无法执行任何操作。

通过将它与另一个数字 (speed) 相乘,您将能够得到一个足够大的数字来实际移动对象。

如果您正在做任何需要 -1f1f0f1f 之间的数字的操作,那么您确实不需要需要将 Input.GetAxis 中的值相乘与任何其他数字一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2020-10-01
    相关资源
    最近更新 更多