transform.forward 和Vector3.forward

本文详细介绍了在Unity游戏引擎中如何控制物体移动及方向。通过对比使用Vector3.forward和transform.forward,解释了两者之间的区别及应用场景。Vector3.forward表示固定的(0,0,1)方向,而transform.forward则根据物体的旋转自动调整方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  转载自网址 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是会一直变化的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值