尝试解决旋转

问题描述

我现在正在为游戏使用一些Mod,我确实需要将播放器旋转到任何对象。 我有两个vector3,即我的pos和对象pos。 通常我们可以 Vector3 Dir = object-使用atan2函数获取方向并计算偏航和俯仰的mypos,将其写入我们的玩家角度,我们将完成旋转。 问题。我第一次看到俯仰值介于180(向上移动)和360(向下移动)之间,偏航0-360,滚动0(现在无关紧要)。它表示为Vector3 euler。当然,如果即时通讯使用atan2方式,但我为该洗脱液向量得到的值不正确,导致我的螺距变小(小于180)或负值变小,则偏航似乎在范围内。如何计算正确?

我的计算:

    Vector3 DoorDir = DoorOrigin - PlayerOrigin;
    DoorDir = normalizeVec(DoorDir);

    float yaw = Rad2Deg(atan2(DoorDir.x,DoorDir.z));//Game has XZY coords.
    float pitch = Rad2Deg(-1.f * atan2(DoorDir.y,sqrtf(DoorDir.x * DoorDir.x + DoorDir.z * DoorDir.z)));   
    SetAngles(Vector2(yaw,pitch)//Sets angles (converted yaw and pitch back to DEG)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)