什么会改变.TransformDirection(vector3.forward)*Time.deltaTime*移动速



我正在尝试制作一个统一的移动三维角色,我偶然发现了一个教程,告诉我当用户按下"w"键时输入这行代码,我不知道不同的组件是什么意思,有人能帮我吗?

开始阅读API!

  • transform是连接到与此脚本所连接的GameObject相同的Transform组件。

  • Transform.TransformDirection

    direction本地空间转换为世界

  • Vector3.forward

    编写new Vector3(0, 0, 1)的捷径

  • Time.deltaTime

    自最后一帧以来的完成时间(以秒为单位(

    它主要用于将units / frame的任何速度转换为units / second的值。

所以让我们把所有的东西放在一起:

  1. 您可以通过transform获得GameObject的Transform引用
  2. 取等于0,0,1的向量Vector3.forward,并使用transform.TransformDirection将其转换为游戏对象的世界空间前向向量。

    注意:这是完全多余的,您不应该使用它

    而是直接使用transform.forward,它已经为您做到了这一点;(

    返回表示世界空间中变换的蓝色轴的归一化向量

  3. 最后,将得到的向量乘以一个幅值。目前,它的大小为1,因为它是一个归一化向量,所以你想使用它的方向,但给它指定一个特定的"速度"。

    因此,将其乘以预定义的固定速度值movementspeed,然后使用Time.deltaTime将其从值movementspeed / frame转换为值movementspeed / second

对象的变换是其位置、旋转和缩放。

Transform.direction用于将变换位置移动到指定的矢量

Vector3.forward是x0,y0,z1 的矢量

Time.deltaTime返回从一帧到下一帧之间经过的秒数

movementspeed是一个变量,你可以用int或float等赋值。

基本上,它以每秒的移动速度向前移动这条线所连接的物体

最新更新