您的位置:首页 > 移动开发 > Unity3D

Unity设置物体旋转角度误区

2018-02-05 16:54 567 查看
第一篇Unity的博文,这篇很短,接下来会陆续更新笔记本上之前记得坑。

在这里有一个小误区,一般新手都非常容易出的错误。

设置物体位置我们都是给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