0

我有一个角色,我正在使用鼠标瞄准他将枪指向的位置。现在我有点让他瞄准,但由于他没有在动画中完全将枪指向前方,所以看起来不正确。有没有办法可以添加到下面的代码中来旋转脊椎,以便他完美地向前瞄准?我似乎想不出办法。

void LateUpdate()
{
    rotationX += Input.GetAxis("Mouse X") * sensitivityX;
    rotationY += Input.GetAxis("Mouse Y") * sensitivityY;


    rotationX = ClampAngle(rotationX, minX, maxX);
    rotationY = ClampAngle(rotationY, minY, maxY);



    Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
    Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, Vector3.right);



    transform.localRotation = originalRotation * xQuaternion;

    for (int counter = 0; counter < spines.Length; counter++)
    {
        spines[counter].localRotation = originalSpineRotations[counter] * yQuaternion ;
    }
}

这是上述代码中用于瞄准的部分

    for (int counter = 0; counter < spines.Length; counter++)
    {
        spines[counter].localRotation = originalSpineRotations[counter] * yQuaternion ;
    }

向下 向上看 方向图

4

1 回答 1

0

好的 因此,经过数小时的数学运算并试图让它工作后,我开始忘记 Quaternion.AngleAxis 需要像 Vector3.right 这样的静态方向。当我第一次这样做时,我使用的是 Vector3.right,但在试图弄清楚如何让它看起来正确时,我开始使用 gun.right 女巫改变,所以它让更奇怪的事情发生了。当我最终想到 quaternion.AngleAxis 需要一个静态方向时,我创建了一个空的 GameObject 并将它放在枪的位置和旋转中,并将其用作方向参数

Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, axisObj.right);
于 2013-09-30T00:07:00.007 回答