Unity如何理解vector3.forward和transform.forward?

问题描述:

当transform.translate(vector3.forward*time.deltatime);//物体会沿着本物体Z轴的方向移动,就算本物体旋转了一定角度之后也是沿着Scene面板中的z轴方向移动。

而transform.translate(transform.forward*time.deltatime);//当物体不旋转的时候会沿着scene面板中的z轴移动,当物体旋转一点角度后物体就不再沿着scene面板中的z轴移动了。

为什么?

因为vector3.forward才是真正的本物体的z轴(永远)

而transform.forward则类似于是在本物体下新建一个空物体,这个空物体是本物体的子级,而transform.forward是这个空物体的本地坐标Z轴。当父级旋转30°,则这个空物体实际上相对于世界坐标轴旋转了30°+30°(子级的local本来就是以父级为世界中心的,父级旋转30°相当于子级的相对于父级的世界旋转了30°,所以子级旋转了60°)、

//简单理解就是:使用translate的时候用vector3.forward,若使用transform.forward则若自己旋转B°,则自己会朝着2*B°的方向移动

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值