【发布时间】:2019-05-19 00:25:48
【问题描述】:
我正在用 C# 编写一段简单的代码,以确保玩家模型的头部指向鼠标的 Vector3 位置 (lookPoint),但它夹在 90 度范围内,与躯干的任一侧成 45 度当前方向。
我已经尝试过欧拉角的结果,以确保我获得了所需的 y 轴旋转值,但我在欧拉角何时应该再次循环到 0 时遇到了困难,我不能似乎想知道如何解决它。
minRot = myTorso.transform.rotation.eulerAngles.y-180f-45f;
maxRot = myTorso.transform.rotation.eulerAngles.y-180f+45f;
lookDirection = Mathf.Atan2(lookPoint.x - transform.position.x, lookPoint.z - transform.position.z);
lookRotation = Mathf.Clamp(Mathf.Rad2Deg * lookDirection, minRot, maxRot);
myHead.eulerAngles = new Vector3(0,lookRotation,0);
这会导致头部在无法确定它的最大值或最小值应该是什么时突然回到极端之一。
谁能帮我定义 minRot 和 maxRot 以便解释 180 度交叉?
【问题讨论】:
标签: c# euler-angles