美文网首页
Unity-黑暗之魂复刻-盾牌

Unity-黑暗之魂复刻-盾牌

作者: 祝你万事顺利 | 来源:发表于2019-05-11 17:38 被阅读0次

新增盾牌

1.在玩家左手添加weaponHandle,再添加一个盾牌的模型。
2.给BaseLayer勾选IKPass,这样BaseLayer就会调用OnAnimatorIK的事件
3.通过Animator抓某个骨头的组件,这里抓左Arm

    private Animator anim;
    private void Awake()
    {
        anim = GetComponent<Animator>();
    }
    private void OnAnimatorIK(int layerIndex)
    {
        Transform leftArm = anim.GetBoneTransform(HumanBodyBones.LeftLowerArm);
    }

4.通过改变BoneTransform来改变左胳膊,让角色再Idle状态和举盾状态进行区分,又去SetBoneLocalRotation只能用四元数,我们这里要将localEulerAngles转换成一个Quaternion

    private Animator anim;
    public Vector3 armAddEuler;
    private void Awake()
    {
        anim = GetComponent<Animator>();
    }
    private void OnAnimatorIK(int layerIndex)
    {
        Transform leftLowerArm = anim.GetBoneTransform(HumanBodyBones.LeftLowerArm);
        leftLowerArm.localEulerAngles += armAddEuler;
        anim.SetBoneLocalRotation(HumanBodyBones.LeftLowerArm, Quaternion.Euler(leftLowerArm.localEulerAngles));
    }

5.给weapon添加一个新的layer,在PhysicsManager中将weapon的碰撞进行管理,这里至少让weapon与ground不进行碰撞检测

相关文章

网友评论

      本文标题:Unity-黑暗之魂复刻-盾牌

      本文链接:https://www.haomeiwen.com/subject/xgoxaqtx.html