原文连接:

http://blog.csdn.net/kaluluosi111/article/details/17206655

在unity3d中有2个forward,一个是vector3.forward和transform.forward,这两个forward其实完全不一样。他们之间的区别主要体现在在不同坐标系时的反映上。

我们分别对比一下 vector3和transform两个向量的forward 在 self自身坐标系 和 world世界坐标系 中的表现,我们用transform.translate函数来验证。。

注:自身坐标!=世界坐标 意味着两个坐标系不重合。

self自身坐标系——space.self

vector3.forward

transform.forward

在这里我就感到很困惑了,为什么transform.forward转自身坐标后会有如此诡异的结果。

画完上面的图后终于明白了。

self自身坐标系的转换是这样的:

将想要转换的向量跟相对于世界坐标轴整个移到目标坐标轴上。

在transform.forward身上就是

那么这里总结一下 vector3.forward和transform.forward的区别。

vector3.forward的值永远等于(0,0,1)。

transform.forward的值则等于当前物体的自身坐标系z轴在世界坐标上指向,因此不一定等于(0,0,1),但是其magnitude长度是1。

这也就是为什么,transform.forward 转换为self自身坐标系时会有这种结果。

在world世界坐标系——space.world上的情况则完全相反。

因此,想要让物体向前移动,在transform.translate()上和直接修改transform.position上,差别是挺大的。

transform.position 本身就是世界坐标。

1、transform.position+= vector3.forward

等于是在世界坐标的z轴前进。

2、transform.position+=transform.forward

等于是物体自身坐标系的z轴前进。

3、transform.translate(vector3.forward,space.self)

等于是自身坐标系的z轴前进。

效果等同于2。

4、transform.translate(transform.forward,space.self)

上面出现的奇葩结果就是这个用法引起的,建议不是特殊需要别用这个用法。

5、transform.translate(vector3.forward,space.world)

等于是让物体沿着世界坐标的z轴前进。

效果等同于1。

6、transform.translate(transform.forward,space.world)

等于是让物体沿着“物体自身坐标z轴在世界坐标上的方向”前进(等同与物体沿着自身z轴前进)。

效果等同于2。

Unity3d vector3.forward和transform.forward的区别!的更多相关文章

  1. vector3.forward和transform.forward的区别!

    http://blog.163.com/bowen_tong/blog/static/20681717420146654927791/ vector3.forward和transform.forwar ...

  2. 关于Vector3.forward和Transform.forward

    在Unity中有两个forward,一个是Transform.forward一个是Vector3.forward. 对于Vector3来说,它只是缩写.没有其它任何含义. Vector3.forwar ...

  3. unity------------------------------transform.forward与Vector.forward的区别

    在unity3d中有2个forward,一个是vector3.forward和transform.forward,这两个forward其实完全不一样.他们之间的区别主要体现在在不同坐标系时的反映上. ...

  4. Unity3d Transform.forward和Vector3.forward的区别!

    在Unity中有两个forward,一个是Transform.forward一个是Vector3.forward. 对于Vector3来说,它只是缩写.没有其它任何含义. Vector3.forwar ...

  5. transform.forward和vector3.forward

    Vector3.forward的值永远是(0,0,1)(这里的(0,0,1)是世界坐标的(0,0,1)),而transform.forward我们可以理解为其对应物体的z轴方向,是一个向量,而不是一个 ...

  6. [unity菜鸟] controller.SimpleMove(transform .forward); 无法移动

    今天做demo时遇到一个问题:当使用角色控制器操作物体,用 controller.SimpleMove(transform .forward); 语句时物体不能移动,搜索请教了很久,最后终于googl ...

  7. zoom和transform:scale的区别

    小tips: zoom和transform:scale的区别 这篇文章发布于 2015年11月3日,星期二,00:52,归类于 css相关. 阅读 7876 次, 今日 8 次 by zhangxin ...

  8. css中zoom和transform:scale的区别

    css中zoom和transform:scale的区别 关于zoom: 以前只是看到别人的代码中用过zoom,自己从未使用过,今天在探究ie7兼容inline-block时,发现里面提到了zoom.下 ...

  9. Forward reference vs. forward declaration

    Q:Im a bit confused. What is the difference between forward declaration and forward reference? Forwa ...

随机推荐

  1. 省一行是一行:在if语句中使用C# 7.0的模式匹配

    C# 7.0的模式匹配(Pattern Mathing)不仅可以节省代码,而且可以让代码更流畅(Fluent),今天又在实际开发中体会了一下. 不用模式匹配的代码,需要先获取返回值,然后用if进行判断 ...

  2. opencv中 int main(int argc,char* argv[])详解

    opencv中  int main(int argc,char* argv[])详解 argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     ...

  3. c# 串口关闭死机

    用C#编写的wince串口通信程序基本大功告成了,与之前用API函数和线程来做串口通信不同,这次直接使用SerialPort控件来做,原本以为使用控件做会简单和方便许多,没成想,还遇到了很多麻烦. 通 ...

  4. day 0314函数的进阶

    1.空间:内置空间,全局空间,局部空间. 内置空间:空间存放python解释器,为我们提供了方便的名字:input,print,str,list,tuple 三个空间的加载顺序: 内置空间>&g ...

  5. Instruments学习之Core Animation学习

    当App发展到一定的规模,性能优化就成为必不可少的一点.但是很多人,又对性能优化很陌生,毕竟平常大多时间都在写业务逻辑,很少关注这个.最近在优化自己的项目,也收集了很多资料,这里先浅谈一下使用Inst ...

  6. B+树vs. LSM树(转)

    原文:<大型网站技术架构:核心原理与案例分析>,作者:李智慧 本书前面提到,由于传统的机械磁盘具有快速顺序读写.慢速随机读写的访问特性,这个特性对磁盘存储结构和算法的选择影响甚大. 为了改 ...

  7. Linux I/O重定向

    所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块的输出,然后把捕捉到的输出,作为输入 发送给另外一个文件,命令,程序,或者脚本.谈到I/O重定向,就 ...

  8. LeetCode-37.Sudok Solver

    Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy  ...

  9. python 遇到的问题及解答

    1.使用pip安装python 模块 打开cmd 输入pip install *,如pip install numpy    等待安装(如下) C:\WINDOWS\System32>pip i ...

  10. wps去广告

    彻底解决WPS弹出热点广告.WPS购物图标的办法 方法一:(一定有效) https://www.cnblogs.com/ytaozhao/p/5654149.html 一直用WPS,但一直有一个问题迟 ...