Unity设置物体旋转角度误区
2018-02-05 16:54
567 查看
第一篇Unity的博文,这篇很短,接下来会陆续更新笔记本上之前记得坑。
这种方法改变的是世界坐标的旋转,所以当包含它的脚本挂载放到某个对象的子节点下,并且父节点的rotation 不是(0,0,0,)时,就会出现Bug,,,无论如何都实现不出想要的效果。
eg:假设父节点如图,
子节点如图,
我们想把子节点围绕Y轴旋转90,还调用上面的代码,就会出现下面图片中的问题
那如何实现呢,接下来介绍第二种旋转方法。
2、给 transform.eulerAngles 赋值。
transform.eulerAngles = new Vector3(0,90,0);(相对世界坐标,与1介绍的表现效果相同)
当想实现子节点旋转时,使用
transform.localEulerAngles = new Vector3(0,90,0);(相对父级坐标旋转)
下面就是我们想实现的效果了
在这里有一个小误区,一般新手都非常容易出的错误。
设置物体位置我们都是给transform.position赋值,那么问题来了,设置物体的旋转角度,我们就顺势给 transform.rotation 赋值了,额,那么就错了,其实 transform.rotation 是一个四元数(Quaternion),他需要一个转化才能达到我们想要的角度。下面有两种方法来改变我们物体的旋转角度。
1、transform.rotation = Quaternion.Euler(new Vector3(0,90,0));这种方法改变的是世界坐标的旋转,所以当包含它的脚本挂载放到某个对象的子节点下,并且父节点的rotation 不是(0,0,0,)时,就会出现Bug,,,无论如何都实现不出想要的效果。
eg:假设父节点如图,
子节点如图,
我们想把子节点围绕Y轴旋转90,还调用上面的代码,就会出现下面图片中的问题
那如何实现呢,接下来介绍第二种旋转方法。
2、给 transform.eulerAngles 赋值。
transform.eulerAngles = new Vector3(0,90,0);(相对世界坐标,与1介绍的表现效果相同)
当想实现子节点旋转时,使用
transform.localEulerAngles = new Vector3(0,90,0);(相对父级坐标旋转)
下面就是我们想实现的效果了
相关文章推荐
- Unity设置物体旋转角度误区
- unity关于角度旋转的一些误区
- Unity设置物体移动、缩放和旋转
- 【Unity】初始化物体的旋转角度
- 【狼】unity 鼠标拖拽物体实现任意角度自旋转
- unity 物体在世界坐标Y轴上的旋转角度怎么求
- unity 鼠标拖拽物体实现任意角度自旋转
- Unity 获取物体正前方绕Y轴旋转一定角度后的方向
- unity rotate 旋转物体 限制物体旋转角度 的大坑
- opencv12-计算物体旋转角度
- Unity3D 使用陀螺仪 检查手机方向 设置固定的旋转角度
- Unity 控制物体绕自身的x,y,z 轴旋转,transform.Rotate()
- Unity 控制物体移动 旋转 缩放
- OpenCV轮廓检测,计算物体旋转角度
- u3d菜鸟入门:unity中物体旋转初探
- unity中手指选中物体拖动旋转
- 物体跟随鼠标移动并旋转角度
- 【Unity快速实现小功能】实现物体绕轴旋转
- Unity 3D鼠标操作实现旋转、缩放观察物体
- Unity 5如何设置物体透明