少年修仙传客户端代码仓库
client_Hale
2018-12-22 eeeab7d1e619f7dd479118972488ac06493db776
5482【1.4.0】游戏帧数优化(二):修改无绑点特效的绑定规则
5个文件已修改
153 ■■■■ 已修改文件
Fight/GameActor/GA_Pet.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/PartialModelResConfig.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DModelExhibition.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DModelFactory.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Pet.cs
@@ -40,13 +40,24 @@
        var _config = TableConfig.ModelResConfig.GetPetConfig(_modelName);
        if (_config != null)
        {
            var _dict = TableConfig.ModelResConfig.GetEffectDict(_modelName);
            if (_dict != null)
            var _boneList = TableConfig.ModelResConfig.GetBoneList(_modelName);
            var _effectlist = TableConfig.ModelResConfig.GetEffectList(_modelName);
            if (_boneList != null && _effectlist != null)
            {
                foreach (var _bone in _dict.Keys)
                for (int i = 0; i < _boneList.Count; ++i)
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_dict[_bone], m_Model.transform.GetChildTransformDeeply(_bone));
                    m_EffectList.Add(_ctrl);
                    if (_boneList[i].Equals("null"))
                    {
                        var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_Model.transform);
                        m_EffectList.Add(_ctrl);
                    }
                    else
                    {
                        var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_Model.transform.GetChildTransformDeeply(_boneList[i]));
                        m_EffectList.Add(_ctrl);
                    }
                }
            }
        }
Fight/GameActor/GActorPlayerBase.cs
@@ -553,7 +553,7 @@
                    return;
                }
            }
            m_WeaponModel = null;
        }
@@ -1444,13 +1444,25 @@
            Debug.LogError("找不到配置ModelResConfig: " + _itemConfig.ChangeOrd);
            return;
        }
        var _dict = ModelResConfig.GetEffectDict(_config.ResourcesName);
        if (_dict != null)
        var _boneList = ModelResConfig.GetBoneList(_config.ResourcesName);
        var _effectlist = ModelResConfig.GetEffectList(_config.ResourcesName);
        if (_boneList != null && _effectlist != null)
        {
            foreach (var _bone in _dict.Keys)
            for (int i = 0; i < _boneList.Count; ++i)
            {
                var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_dict[_bone], m_SecondaryModel.transform.GetChildTransformDeeply(_bone));
                m_SecondaryEffectList.Add(_ctrl);
                if (_boneList[i].Equals("null"))
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_SecondaryModel.transform);
                    m_SecondaryEffectList.Add(_ctrl);
                }
                else
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_SecondaryModel.transform.GetChildTransformDeeply(_boneList[i]));
                    m_SecondaryEffectList.Add(_ctrl);
                }
            }
        }
    }
@@ -1473,13 +1485,24 @@
            Debug.LogError("找不到配置ModelResConfig: " + _itemConfig.ChangeOrd);
            return;
        }
        var _dict = ModelResConfig.GetEffectDict(_config.ResourcesName);
        if (_dict != null)
        var _boneList = ModelResConfig.GetBoneList(_config.ResourcesName);
        var _effectlist = ModelResConfig.GetEffectList(_config.ResourcesName);
        if (_boneList != null && _effectlist != null)
        {
            foreach (var _bone in _dict.Keys)
            for (int i = 0; i < _boneList.Count; ++i)
            {
                var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_dict[_bone], m_WeaponModel.transform.GetChildTransformDeeply(_bone));
                m_WeaponEffectList.Add(_ctrl);
                if (_boneList[i].Equals("null"))
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_WeaponModel.transform);
                    m_WeaponEffectList.Add(_ctrl);
                }
                else
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_WeaponModel.transform.GetChildTransformDeeply(_boneList[i]));
                    m_WeaponEffectList.Add(_ctrl);
                }
            }
        }
    }
@@ -1503,13 +1526,25 @@
            Debug.LogError("找不到配置ModelResConfig: " + _horseConfig.Model);
            return;
        }
        var _dict = ModelResConfig.GetEffectDict(_config.ResourcesName);
        if (_dict != null)
        var _boneList = ModelResConfig.GetBoneList(_config.ResourcesName);
        var _effectlist = ModelResConfig.GetEffectList(_config.ResourcesName);
        if (_boneList != null && _effectlist != null)
        {
            foreach (var _bone in _dict.Keys)
            for (int i = 0; i < _boneList.Count; ++i)
            {
                var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_dict[_bone], m_HorseModel.transform.GetChildTransformDeeply(_bone));
                m_HorseEffectList.Add(_ctrl);
                if (_boneList[i].Equals("null"))
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_HorseModel.transform);
                    m_HorseEffectList.Add(_ctrl);
                }
                else
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], m_HorseModel.transform.GetChildTransformDeeply(_boneList[i]));
                    m_HorseEffectList.Add(_ctrl);
                }
            }
        }
    }
@@ -2536,9 +2571,9 @@
    public void HideGodWeaponEffect()
    {
        SwitchGodWeapon(1,0);
        SwitchGodWeapon(2,0);
        SwitchGodWeapon(4,0);
        SwitchGodWeapon(1, 0);
        SwitchGodWeapon(2, 0);
        SwitchGodWeapon(4, 0);
    }
    public void SwitchGodWeapon(int type, int level)
Fight/GameActor/PartialModelResConfig.cs
@@ -8,7 +8,8 @@
        private static readonly Dictionary<string, ModelResConfig> suitDict = new Dictionary<string, ModelResConfig>();
        private static readonly Dictionary<string, ModelResConfig> petDict = new Dictionary<string, ModelResConfig>();
        private static readonly Dictionary<string, ModelResConfig> horseDict = new Dictionary<string, ModelResConfig>();
        private static readonly Dictionary<string, Dictionary<string, int>> effectDict = new Dictionary<string, Dictionary<string, int>>();
        private static readonly Dictionary<string, List<string>> effectBoneDict = new Dictionary<string, List<string>>();
        private static readonly Dictionary<string, List<int>> effectEffectDict = new Dictionary<string, List<int>>();
        public void OnConfigParseCompleted()
        {
@@ -44,25 +45,44 @@
                        Debug.LogWarningFormat("{0} 绑定骨骼的数量和特效的数量无法对应 {1} != {2}", ID, _bones.Length, _effects.Length);
                    }
                    var _dict = new Dictionary<string, int>();
                    var _boneList = new List<string>();
                    var _effectList = new List<int>();
                    for (int i = 0; i < _bones.Length && i < _effects.Length; ++i)
                    for (int i = 0; i < _effects.Length; ++i)
                    {
                        _dict[_bones[i]] = int.Parse(_effects[i]);
                        if (i < _bones.Length)
                        {
                            _boneList.Add(_bones[i]);
                        }
                        else
                        {
                            _boneList.Add("null");
                        }
                        _effectList.Add(int.Parse(_effects[i]));
                        // Debug.LogFormat("设置特效配置: {0} => {1}", _bones[i], _dict[_bones[i]]);
                    }
                    effectDict[ResourcesName] = _dict;
                    effectBoneDict[ResourcesName] = _boneList;
                    effectEffectDict[ResourcesName] = _effectList;
                }
            }
        }
        public static Dictionary<string, int> GetEffectDict(string name)
        public static List<string> GetBoneList(string name)
        {
            if (effectDict.ContainsKey(name))
            if (effectBoneDict.ContainsKey(name))
            {
                return effectDict[name];
                return effectBoneDict[name];
            }
            return null;
        }
        public static List<int> GetEffectList(string name)
        {
            if (effectEffectDict.ContainsKey(name))
            {
                return effectEffectDict[name];
            }
            return null;
        }
UI/Common/UI3DModelExhibition.cs
@@ -787,13 +787,24 @@
        {
            HideNpcEffect();
            var _dict = ModelResConfig.GetEffectDict(modelName);
            if (_dict != null)
            var _boneList = ModelResConfig.GetBoneList(modelName);
            var _effectlist = ModelResConfig.GetEffectList(modelName);
            if (_boneList != null && _effectlist != null)
            {
                foreach (var _bone in _dict.Keys)
                for (int i = 0; i < _boneList.Count; ++i)
                {
                    var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_dict[_bone], parent.GetChildTransformDeeply(_bone));
                    m_BindEffectList.Add(_ctrl);
                    if (_boneList[i].Equals("null"))
                    {
                        var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], parent);
                        m_BindEffectList.Add(_ctrl);
                    }
                    else
                    {
                        var _ctrl = SFXPlayUtility.Instance.PlayBattleEffect(_effectlist[i], parent.GetChildTransformDeeply(_boneList[i]));
                        m_BindEffectList.Add(_ctrl);
                    }
                }
            }
        }
UI/Common/UI3DModelFactory.cs
@@ -206,7 +206,7 @@
    public static void ReleaseUIHourse(int id, GameObject model)
    {
        var prefab = InstanceResourcesLoader.LoadModelRes(id, true);
        var prefab = InstanceResourcesLoader.LoadModelRes(id, false);
        var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
        var animator = model.GetComponent<Animator>();