我有一个啤酒瓶位于玻璃杯 90% 的顶部。我想围绕顶部的枢轴旋转它。为了做到这一点,我试图找到鼠标位置(mp)和瓶子之间的角度并通过它旋转 ti。
旋转中心是游戏对象的当前位置,因为精灵的枢轴位于顶部。我试图找到两个向量,一个是从 mp 到旋转中心的向量,另一个是瓶子的位置。然后我使用:gameObject.transform.Rotate(Vector3.Forward, Vector3.Angle(v2,v1))。
结果当然不是我所期望的。我是这个游戏数学的新手,希望得到解释。
(这是一款安卓游戏,我打算将瓶子从 90 度上下拖动到 180 度)。
MrApnea 的链接表示使用两个对象位置之间的 点积来计算它们之间的角度 (θ)。
θ = Math.Acos (Vector3.Dot (mouseClick, startPosition) / mouseClick.magnitude * startPosition.magnitude)