保留y轴旋转,其他不要
Vector3 eulerAngle=animator.deltaRotation.eulerAngles;//直接转为欧拉角
transform.rotation=new Vector3(0,eulerAngle.y,0);
保留y轴旋转,其他不要
Vector3 eulerAngle=animator.deltaRotation.eulerAngles;//直接转为欧拉角
transform.rotation=new Vector3(0,eulerAngle.y,0);
animator.MatchTarget(target.position,taget.rotation,AvatarTarget.RightHand,new MatchTargetWeightMask(Vector3.one,1),0,0)
target.position 目标的位置
target.rotation 与目标的旋转保持一致
animator.MatchTarget
第一个参数:
匹配位置,胸口
第二个参数
匹配物体的旋转角度。匹配胸口的旋转是否一致
第三个参数
匹配的部分
屏蔽几个相同类型的动画根运动
animator.GetCurrentAnimatorStateInfo(0).IsTag("NeedMove")
在动画状态的Tag打上自己的tag
启用根运动:
1.Animator组件的Apply Root Motion打勾
2.对应动画的Animator设置不要打勾
移动跳跃不适用根运动
bug1:
子对象进行根运动时,只会作用在子对象自己身上。父对象不受影响
修改方法:
将父对象的位置加上animator产生的位移
private void OnAnimatorMove()
{
cbc.transform.position+=animator.deltaPosition;
cbc.transform.rotation*=animator.deltaPosition;
}
其中cbc是该物体的父物体的引用
其中旋转是*=,不是+=