我有一个角色,我用鼠标瞄准他指向枪口的地方。现在我有点瞄准他,但由于他没有在动画中完美地指向他的枪,所以看起来并不正确。有没有办法可以添加到下面的代码来旋转刺,以便他完美地向前推进?我似乎无法想办法。
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 ;
}
答案 0 :(得分:0)
Ok所以经过几个小时的数学运算并试图让它工作后我开始忘记Quaternion.AngleAxis需要像Vector3.right这样的静态方向。当我第一次这样做的时候,我正在使用Vector3.right但是在试图弄清楚如何让它看起来正确的时候我开始使用gun.right女巫的变化,所以这让我们的事情发生了。当我终于想到了quaternion.AngleAxis如何需要静态方向时,我创建了一个空的GameObject并将其置于枪的位置和旋转中并将其用作方向参数
Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, axisObj.right);