Unity3d实现物体围绕某一点进行旋转
2016-05-03 17:51
411 查看
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 (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)绕轴点旋转
功能是使得GameObject对象绕着point点的axis方向旋转angle度。
答:在这个点处放一个空物体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度。
相关文章推荐
- Unity StrangeIoC HelloWorld
- Unity StrangeIoC HelloWorld
- 【Unity3D游戏开发】基于NGUI的表情图文混排解决方案 (二二)
- 【Unity3D游戏开发】定制新建C#文件的头描述
- 002-实现Unity3d中触摸屏幕控制物体的旋转和缩放 代码实现
- 猫都能学会的Unity3D Shader入门指南(二)
- unity3d 5.0中Renderer后面没有了material
- 猫都能学会的Unity3D Shader入门指南(一)
- Unity基础 - 地形基础
- Unity3d 官方角色换装Demo源代码学习
- 一些看起来不错的Unity资源包
- Unity3d之Mecanim(新版动画系统)
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(60)-系统总结
- unity3d出镜率最高的面试题
- Unity3D面试题大合集
- Unity3D最新面试高频问答题目
- Unity3D面试题汇总
- 上海某大型游戏公司Unity3D基础面试题
- [Unity3D]蓝港面试题