少年修仙传客户端代码仓库
client_Hale
2019-01-10 4b17137cd06ad392321467b018df5adc4b50ec4a
5732 【前端】【1.5】时装功能角色模型替换支持 手臂相关逻辑
1个文件已修改
72 ■■■■■ 已修改文件
Fight/GameActor/GActorPlayerBase.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs
@@ -343,6 +343,8 @@
        }
        m_Material = null;
        SwitchHand(false);
        foreach (var _effect in m_GodWeaponEffectDict.Values)
        {
            SFXPlayUtility.Instance.Release(_effect);
@@ -395,11 +397,13 @@
    private GameObject m_SecondaryModel;
    private GameObject m_WingModel;
    private GameObject m_HorseModel;
    private GameObject m_HandModel;
    private GA_Guard m_Guard;
    private Transform m_HorseBindNode;
    protected uint ClothesItemID { get; private set; }
    protected int HandResID { get; private set; }
    protected uint HorseID { get; private set; }
    protected uint WeaponItemID { get; private set; }
    protected uint SecondaryID { get; private set; }
@@ -885,6 +889,16 @@
                {
                    itemID = _equipInfo.itemID;
                }
                // 如果有副手则卸下手臂
                if (m_EquipDict.ContainsKey((int)RoleEquipType.retWeapon2))
                {
                    SwitchHand(false);
                }
            }
            else
            {
                SwitchHand(true);
            }
        }
        else if (index == (int)RoleEquipType.retClothes)
@@ -1045,6 +1059,10 @@
            m_SecondaryModel.transform.localPosition = Vector3.zero;
            m_SecondaryModel.transform.localRotation = Quaternion.identity;
        }
        else
        {
            SwitchHand(true);
        }
        // 重新确定当前状态
        if (m_HorseModel)
@@ -1200,6 +1218,60 @@
        GuardID = guardID;
    }
    protected void SwitchHand(bool onOrOff)
    {
        if (JobSetup == null
         || JobSetup.Job != 1)
        {
            return;
        }
        if (onOrOff)
        {
            int _resID = JobSetup.BaseEquip[0] + 2900;
            EquipInfo _equipInfo;
            if (m_EquipDict.TryGetValue((int)RoleEquipType.retClothes, out _equipInfo))
            {
                var _clothesItem = Config.Instance.Get<ItemConfig>((int)_equipInfo.itemID);
                if (_clothesItem != null)
                {
                    _resID = _clothesItem.ChangeOrd + 2900;
                }
            }
            if (m_HandModel)
            {
                if (!TryRelease(HandResID, m_HandModel))
                {
                    return;
                }
            }
            if (TryRequest(_resID, ref m_HandModel))
            {
                // 替换当前衣服上的武器
                Transform _secondaryNode = m_ClothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[JobSetup.Job - 1]);
                m_HandModel.transform.SetParent(_secondaryNode);
                m_HandModel.transform.localPosition = Vector3.zero;
                m_HandModel.transform.localRotation = Quaternion.identity;
                HandResID = _resID;
            }
        }
        else
        {
            if (m_HandModel)
            {
                if (!TryRelease(HandResID, m_HandModel))
                {
                    return;
                }
                HandResID = 0;
            }
        }
    }
    public void SwitchHorse(uint horseItemID)
    {
        if (horseItemID != 0