Unity在地球上放置物体时使物体垂直于地面的实现

向量a:地心指向地面点P的向量

向量b:地球正北方向的向量(这里为向上)

向量c:垂直于向量a和向量b所在平面的向量

Vector3 a = pointP - MyPlanet.ins.transform.position;
Vector3 b = MyPlanet.ins.transform.up;
Vector3 c= Vector3.Cross(a, b);

man.transform.rotation = Quaternion.AngleAxis(-90.0f, c) * Quaternion.LookRotation(-a, b);

要让人垂直地面并面向正北方向,需要两步:

1.调用 Quaternion.LookRotation实现人看向地心,头朝北。

Unity在地球上放置物体时使物体垂直于地面的实现

1.将人绕向量c旋转90度

Unity在地球上放置物体时使物体垂直于地面的实现

上一篇:Unity 中的 3D 数学学习笔记——认识坐标系及坐标系之间的转换


下一篇:Unity中的群组行为