Unity tranform.Tranlate(transform.forward)不按设想移动的问题
2017-11-12 23:15
225 查看
Unity中物体的坐标分为世界空间坐标和本地空间坐标。
![](https://img-blog.csdn.net/20171112224544838?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlbjJf/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
新建一个cube,不旋转,随意移动cube位置,输出transform.forward 发现它始终是(1,0,0)。也就是本地坐标方向是相对于世界坐标原点来识别的。
![](https://img-blog.csdn.net/20171112225019503?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlbjJf/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
将cube旋转45°,再输出transform.forward,结果是(0.7,0,0.7)。
这个时候给cube一段控制代码:transform.Translate(transform.forward);
会发现,cube并不是沿着图中transform.forward方向移动的
查看脚本手册: Translate (translation : Vector3, relativeTo : Space = Space.Self)
可以看到这个函数第二个参数默认是本地坐标空间,也就是说此时移动是参考本地坐标空间来移动的。
因为transform.forward 数值表达为(0.7, 0 ,0.7),然后cube要将自身朝着相对于自身坐标系的(0.7, 0 , 0.7)方向移动,也就是下图:
![](https://img-blog.csdn.net/20171112230623091?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlbjJf/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以,此时cube会相对于世界空间坐标的z轴负方向运动。
解决方法:只要将第二个参数设置为Space.wrod。Cube就会沿着自身的Z轴运动了。
新建一个cube,不旋转,随意移动cube位置,输出transform.forward 发现它始终是(1,0,0)。也就是本地坐标方向是相对于世界坐标原点来识别的。
将cube旋转45°,再输出transform.forward,结果是(0.7,0,0.7)。
这个时候给cube一段控制代码:transform.Translate(transform.forward);
会发现,cube并不是沿着图中transform.forward方向移动的
查看脚本手册: Translate (translation : Vector3, relativeTo : Space = Space.Self)
可以看到这个函数第二个参数默认是本地坐标空间,也就是说此时移动是参考本地坐标空间来移动的。
因为transform.forward 数值表达为(0.7, 0 ,0.7),然后cube要将自身朝着相对于自身坐标系的(0.7, 0 , 0.7)方向移动,也就是下图:
所以,此时cube会相对于世界空间坐标的z轴负方向运动。
解决方法:只要将第二个参数设置为Space.wrod。Cube就会沿着自身的Z轴运动了。
相关文章推荐
- [unity菜鸟] controller.SimpleMove(transform .forward); 无法移动
- Unity在移动设备上发热严重问题
- JQM 移动前端闪屏问题 transform blink/flick bug webkit
- unity像素游戏里面的像素自适应关系和移动抖动闪烁问题分析
- unity GearVr 摄像机移动和旋转问题
- 旋转会对unity中物体的transform.forward的值产生影响
- 关于Unity里面物体移动的问题
- Unity在移动平台上的运用:关于打包到 Android 端的问题
- Unity 点乘(Dot)、叉乘(Cross)判断移动方向、朝向等向量问题
- unity中的jsp函数 控制角色移动transform.Translate
- unity移动平台路径问题
- unity物体移动三种方式之——Transform.Translate
- Unity 点乘(Dot)、叉乘(Cross)判断移动方向、朝向等向量问题
- unity-scene,右键+aswd移动很慢的问题
- SQLite only supports TYPE_FORWARD_ONLY 不支持游标移动的问题
- unity角色摄像机实际坐标变了,但是不移动的问题
- 解决Unity播放FBX模型动画时,模型Transform变化问题
- Unity控制角色移动错误问题集合、第一人称视角
- unity------------------------------transform.forward与Vector.forward的区别
- 【Unity】6.4 Transform--移动、旋转和缩放游戏对象