当前问题:
我正在使用世界空间四元数偏移将玩家模型的手旋转到玩家的真实手,使用:
private Quaternion GetOffsetFromAvatar(Quaternion a, Quaternion b)
{
Quaternion _offset = a * Quaternion.Inverse(b);
return _offset;
}
然后应用它:
public void OffsetTarget(Transform Target, Transform PlayerHand, Transform AvatarBone)
{
/// OffsetTarget() is to be used to auto align avatar hands to player hands.
Quaternion _offset = GetOffsetFromAvatar(PlayerHand.rotation,
AvatarBone.GetComponentInChildren<AvatarOffsetPoint>().transform.rotation);
Target.rotation = _offset * PlayerHand.rotation;
}
预期的结果应该允许玩家在运行时动态更改他们的模型,并且手与玩家的真实手正确对齐,但是当我测试时,手朝向完全不同的方向。