2D:找到鼠标位置和游戏对象之间的角度

问题描述 投票:0回答:2

我有一个啤酒瓶位于玻璃杯 90% 的顶部。我想围绕顶部的枢轴旋转它。为了做到这一点,我试图找到鼠标位置(mp)和瓶子之间的角度并通过它旋转 ti。

enter image description here

旋转中心是游戏对象的当前位置,因为精灵的枢轴位于顶部。我试图找到两个向量,一个是从 mp 到旋转中心的向量,另一个是瓶子的位置。然后我使用:gameObject.transform.Rotate(Vector3.Forward, Vector3.Angle(v2,v1))。

结果当然不是我所期望的。我是这个游戏数学的新手,希望得到解释。

(这是一款安卓游戏,我打算将瓶子从 90 度上下拖动到 180 度)。

rotation angle unity-game-engine
2个回答
1
投票

我希望我正确理解你的问题。 但是,如果您想找到鼠标点之间的角度,您可以使用您在图片上绘制的两条线并计算它们之间的角度。

看看这个答案:

计算两条线之间的角度而不需要计算斜率? (Java)


0
投票

MrApnea 的链接表示使用两个对象位置之间的 点积来计算它们之间的角度 (θ)。

θ = Math.Acos (Vector3.Dot (mouseClick, startPosition) / mouseClick.magnitude * startPosition.magnitude)

参考:维基百科的点积页面中的“几何定义”插图

© www.soinside.com 2019 - 2024. All rights reserved.