9.9号学习unity

Animator状态机下的Layers 下的层的属性Blending9.9号学习unity_第1张图片

Animator状态机下的Layers 下的层的属性Blending中的Addtive是附加的,Overide是重写,一般是用Addtive做附加使用。重写后原来的动画就不存在了,如何可以只让2只手产生影响,要使用AvatarMask.

使用IK动画设置左手到目标位置

3元运算符判断参数的权重

private void OnAnimatorIK(int layerIndex) //他会一直调用,所以人物的手会一直在目标点
    {//IK动画中,你直接在播放中修改IK动画的目标点依然是会产生影响的,很赞。
        if(layerIndex ==1)
        {
            //当前被HoldLog调用的。
            int weight = anima.GetBool(isHoldLogID) ? 1 : 0;//如果是true返回1,false返回0

            anima.SetIKPosition(AvatarIKGoal.LeftHand, leftHand.position);
            anima.SetIKRotation(AvatarIKGoal.LeftHand, leftHand.rotation);
            anima.SetIKPositionWeight(AvatarIKGoal.LeftHand, weight);
            anima.SetIKRotationWeight(AvatarIKGoal.LeftHand, weight);
            //anima.SetIKPosition(AvatarIKGoal.RightHand, rightHand.position);
            // anima.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
            anima.SetIKPosition(AvatarIKGoal.RightHand, rightHand.position);
            anima.SetIKRotation(AvatarIKGoal.RightHand, rightHand.rotation);
            anima.SetIKPositionWeight(AvatarIKGoal.RightHand, weight);
            anima.SetIKRotationWeight(AvatarIKGoal.RightHand, weight);

        }
    }

 

你可能感兴趣的:(UNITY)