Unity3d实现物体围绕某一点进行旋转

编程入门 行业动态 更新时间:2024-10-13 20:18:50

Unity3d实现<a href=https://www.elefans.com/category/jswz/34/1765220.html style=物体围绕某一点进行旋转"/>

Unity3d实现物体围绕某一点进行旋转

1,让一个物体围绕某一点旋转,有几种方法?分别是什么?

答:在这个点处放一个空物体B,则问题变为A绕着B旋转,

方法1:B不动,A挂脚本实现transform的RotateAround(vector3 point, vector3 axis, float angle)函数

例如 A.RotateAround(B.position, Vector3.up,  30*Time.deltaTime);   //A绕着B的y轴进行旋转。

方法2:A不动,A作为B的子物体,B挂脚本实现自转,然后带着A转,类似于模拟围绕中心天体旋转。

例如:B.Rotate (Vector3.up, 30*Time.deltaTime, Space.Self); //B绕着自身的up方向自转,从而带着A一起转。

方法3:矩阵变换,研究中。       

注:旋转的常用方法:

(1)绕坐标轴旋转

public void Rotate (Vector3 eulerAngles, Space relativeTo = Space.Self);
或者

public void Rotate (float xAngle, float yAngle, float zAngleSpace, relativeTo = Space.Self);

其中relativeTo = Space.Self表示绕自身坐标系旋转,ralativeTo = Space.World表示绕世界坐标系旋转。

(2)饶某个向量旋转

public void Rotate(Vector3 axis, float angle, Space relativeTo);

其中axis为旋转轴方向,angle为旋转角度,relativeTo为参考坐标系,默认为Space.self。此方法的功能是使得GameObject对象在relativeTo坐标系中绕轴向量axis旋转angle度。

(3)绕轴点旋转

public void RotateAround(Vector3 point, Vector3 axis, float angel);

功能是使得GameObject对象绕着point点的axis方向旋转angle度。






更多推荐

Unity3d实现物体围绕某一点进行旋转

本文发布于:2024-03-23 18:40:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1741501.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:物体   Unity3d

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!