C# 我怎样才能让我的角色正确瞄准?

C# 我怎样才能让我的角色正确瞄准?,c#,animation,unity3d,C#,Animation,Unity3d,我有一个角色,我用鼠标瞄准他指着枪的地方。现在我有点让他瞄准,但因为他在动画中没有把枪完全对准前方,所以看起来不对劲。有没有一种方法可以添加到下面的代码中,让他旋转脊椎,从而完美地瞄准前方?我似乎想不出一个办法 void LateUpdate() { rotationX += Input.GetAxis("Mouse X") * sensitivityX; rotationY += Input.GetAxis("Mouse Y") * sensitivityY; ro

我有一个角色,我用鼠标瞄准他指着枪的地方。现在我有点让他瞄准,但因为他在动画中没有把枪完全对准前方,所以看起来不对劲。有没有一种方法可以添加到下面的代码中,让他旋转脊椎,从而完美地瞄准前方?我似乎想不出一个办法

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 ;
    }
}
void LateUpdate()
{
rotationX+=Input.GetAxis(“鼠标X”)*灵敏度X;
旋转Y+=输入.GetAxis(“鼠标Y”)*灵敏度yy;
rotationX=夹紧(rotationX,minX,maxX);
rotationY=ClampAngle(rotationY、minY、maxY);
四元数xQuaternion=四元数角度轴(旋转x,矢量3向上);
四元数yQuaternion=四元数角度轴(-rotationY,Vector3.right);
transform.localRotation=原始旋转*xQuaternion;
对于(int counter=0;counter
这是上面代码中执行瞄准的部分

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

好吧,在花了好几个小时胡思乱想数学并试图让它发挥作用之后,我开始忘记四元数。角度轴需要一个像矢量3.right这样的静态方向。当我第一次这样做的时候,我用的是Vector3。对,但在试图弄清楚如何使它看起来正确的时候,我开始使用gun。对,巫婆改变了,所以它让更奇怪的事情发生了。当我最后考虑quaternion.AngleAxis如何需要一个静态方向时,我创建了一个空的游戏对象,并将其放置在枪的位置和旋转中,并将其用作方向参数

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

我会保护旋转
transform.localRotation=originalRotation*xQuaternion为最后一个字符,否则您的字符将倾斜。所以我认为“问题”不在你提供的代码中,而是在你堆叠旋转(矩阵)的地方。当我最后放置时,没有任何变化,问题是我自己无法修复动画,我也没有人可以修复它们,所以我想知道是否有一种方法可以添加到代码中来修复问题,旋转不应该除以脊椎的数量吗?或者原始PineRotations[计数器]是否包含一个片段我认为需要用它们分割,但我这样做时得到了奇怪的结果,当我将其更改为此编辑时,它们消失了*分割时奇怪的结果是它总是重置为defalut位置你能更新图像以便我可以看到结果吗?(我试着想象你在创造什么):)