如何让我的角色正确瞄准?

时间:2013-09-29 20:35:53

标签: c# animation unity3d

我有一个角色,我用鼠标瞄准他指向枪口的地方。现在我有点瞄准他,但由于他没有在动画中完美地指向他的枪,所以看起来并不正确。有没有办法可以添加到下面的代码来旋转刺,以便他完美地向前推进?我似乎无法想办法。

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 ;
    }

Looking Down Looking Up Direction Diagram

1 个答案:

答案 0 :(得分:0)

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

Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, axisObj.right);