通过方向计算四元数旋转
1 // 已知方向,求物体的旋转 2 public static Quaternion GetRotation(Vector3 knownDirection) 3 { 4 knownDirection.Normalize(); 5 // Unity中的世界坐标系中,正前方通常为Vector3.forward (0, 0, 1) 6 Vector3 forward = Vector3.forward; 7 8 // 计算旋转轴(叉乘结果)和旋转角度(通过点乘) 9 Vector3 rotationAxis = Vector3.Cross(forward, knownDirection).normalized; 10 float angle = Mathf.Acos(Vector3.Dot(forward, knownDirection) / (forward.magnitude * knownDirection.magnitude)); 11 12 // 将轴角转换为四元数 13 Quaternion rotation = Quaternion.AngleAxis(angle * Mathf.Rad2Deg, rotationAxis); 14 15 // 输出四元数 16 //Debug.Log("Calculated Quaternion Rotation: " + rotation); 17 18 return rotation; 19 }
分类:
Unity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix