Unity-黑暗之魂复刻-盾牌

本文详细介绍了在Unity游戏开发中如何为玩家角色添加盾牌装备,包括模型添加、动画调整、骨骼旋转控制及碰撞管理,使角色在不同状态间自然切换。
新增盾牌

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不进行碰撞检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值