转载自网址 http://www.newbieol.com/information/1765.html,侵删。
一个Cube位置为(0,0,0),让该Cube向前移动,scene界面我们发现物体向前移动得改它的z轴,于是我们可以这么写代码
void Update () {
this.transform.position += new Vector3 (0, 0, 1);
}
这么写之后,确实就往前方跑了,但是有个问题,Update一帧执行5,60次,每帧都new 一个Vector3的话,对内存是一个消耗。
于是我们用一个系统自带的Vector3.forward(它代表Vector3(0,0,1))
void Update () {
this.transform.position += Vector3.forward;
}
所以记住,Vector3.forward是一个定值,它没有任何意义!它仅仅代表Vector3(0,0,1),仅此而已,前往别给它任何意义。
那么上面的代码其实是有问题的。当我们把小车的旋转值改变之后,发现this.transform.position += Vector3.forward已经不能让车往前方走了,
他需要一个正确的方向向量。
于是transform.forward应运而生。他是一个用来自动对物体旋转值算出前进方向向量的变量。
void Update () {
this.transform.position += transform.forward;
}
我们把代码改成上面那样,就可以按照车辆向前的方向行驶了。
所以记住,transform.forward是一个变值,它代表物体的前方的向量!会根据物体的旋转量自动算出来,如果物体时刻在旋转,这个transform.forward是会一直变化的。