Unity 的 Quaternion.AngleAxis(angle,axis)实际应用和利用Quaternion.AngleAxis(angle,axis)实现一个物体绕另一个物体做圆周运动
Posted 一梭键盘任平生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 的 Quaternion.AngleAxis(angle,axis)实际应用和利用Quaternion.AngleAxis(angle,axis)实现一个物体绕另一个物体做圆周运动相关的知识,希望对你有一定的参考价值。
public static Quaternion AngleAxis(float angle, Vector3 axis);
描述
创建一个绕轴旋转角度的旋转。
参数: float 和 Vector3
返回值 Quaternion
首先看参数分别是float类型和Vector3类型 含义分别是 旋转角度和绕那个向量旋转
然后看返回值是一个四元数
这是一个静态方法 所以调用的方式是 Quaternion.AngleAxis(angle,axis)
最经常的使用方法应该是:
1.传入一个旋转角度和旋转轴 可以得到一个绕指定旋转轴旋转后的四元数,然后我们可以把四元数赋值给一个物体,得到此物体绕此旋转轴旋转angle度之后的样子
2.Quaternion.AngleAxis(angle,axis)*dir 这就得到向量dir绕指定旋转轴旋转angle之后的向量
这时我们发现向量的起始点是(0,0,0)点
既然可以绕(0,0,0)点做圆周运动 那是不是也可以自己定义圆心位置
然后发现
public float angle = 2f;
public Vector3 center;
private Vector3 dir;
// Start is called before the first frame update
void Start()
// Update is called once per frame
void Update()
dir = Quaternion.AngleAxis(angle, Vector3.up) * dir;
Debug.DrawRay(center, dir, Color.green,7f);
画出了向量dir绕center旋转
由此 可以做到让一个物体绕另一个物体做圆周运动
public float angle = 2f;
public Transform center;
public float r;
private Vector3 dir;
// Start is called before the first frame update
void Start()
dir = new Vector3(r, 0, 0);
// Update is called once per frame
void Update()
dir = Quaternion.AngleAxis(angle, Vector3.up) * dir;
transform.position = center.position + dir;
这样就实现了 挂载此脚本的物体以center为圆心 r为半径做圆周运动
然后继续可以推出
public float angle = 2f;
public Transform center;
// Start is called before the first frame update
void Start()
// Update is called once per frame
void Update()
transform.position = Quaternion.AngleAxis(angle, Vector3.up) * (transform.position - center.position) + center.position;
以当前物体和center的距离作为半径 绕center旋转的逻辑
unity虚拟仿真怎么样
参考技术A 很好。根据unity官网查询,unity虚拟仿真有丰富的资源库,可以满足不同应用场景的需求,支持多种编程语言,所以unity虚拟仿真好。
虚拟仿真技术是20世纪末才兴起的一门新的综合性技术,由计算机生成现实世界的再现和构想中的世界,借助视觉、听觉及触觉等多种传感通道与虚拟世界进行自然的交互。 参考技术B
Unity是一种流行的游戏引擎,其强大的3D图形渲染和物理引擎技术,使其也被广泛应用于虚拟仿真领域。下面是Unity虚拟仿真的一些优点和应用场景:
优点:
逼真的3D图形渲染:Unity的图形渲染引擎可以创建逼真的3D场景,以便进行真实的物理仿真。
强大的物理引擎:Unity的物理引擎可以模拟各种物理效应,如重力、碰撞、摩擦力等,从而实现真实的物理仿真。
丰富的资源库:Unity拥有丰富的资源库,包括3D模型、贴图、音效等,可以用于创建虚拟仿真场景。
跨平台支持:Unity可以在多个平台上运行,如PC、移动设备、VR头盔等,可以实现多种应用场景。
应用场景:
工业仿真:Unity可以用于创建虚拟工厂和机器人仿真,帮助工程师进行生产流程的优化和改进。
医学仿真:Unity可以用于创建医学仿真应用,如手术模拟、疾病诊断等,帮助医学专业人员进行培训和实践。
城市规划:Unity可以用于创建虚拟城市场景,帮助城市规划者进行规划和模拟,优化城市规划和建设。
教育培训:Unity可以用于创建虚拟实验室、虚拟训练场等,帮助学生进行实践学习和教育培训。
综上所述,Unity虚拟仿真具有强大的图形渲染和物理仿真技术,可以应用于工业、医学、城市规划、教育培训等多个领域,为各行各业提供优秀的虚拟仿真方案。
以上是关于Unity 的 Quaternion.AngleAxis(angle,axis)实际应用和利用Quaternion.AngleAxis(angle,axis)实现一个物体绕另一个物体做圆周运动的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )