少年修仙传客户端代码仓库
client_Hale
2018-10-29 0e58a81349c01afe2c74a587d2c7d63e7705feb5
4129 【前端】重启后卡顿级优化策略 特效相关优化完成
15个文件已修改
151 ■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0609_tagPlayerDie.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0610_tagNPCUseSkill.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AssetBundle/AssetBundleUtility.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/InstanceResourcesLoader.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SFX/SFXPlayUtility.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/AttackHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/FlyObject/FoTransmit.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/State/SMB/STM_BaseAttack.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/State/SMB/STM_NormalAttack.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/Status_Base.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/UserInputHandler.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcSummonFight.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0609_tagPlayerDie.cs
@@ -2,7 +2,7 @@
using System.Collections;
using Snxxz.UI;
//06 09 玩家死亡#tagPlayerDie
//06 09 �������#tagPlayerDie
public class DTC0609_tagPlayerDie : DtcBasic
{
@@ -73,7 +73,7 @@
                if (ModelCenter.Instance.GetModel<DungeonModel>().IsElderGodExpel()
                 && vNetData.KillerType == 0)
                {
                    SFXPlayUtility.Instance.PlayBattleEffect(3040, _hero);
                    SFXPlayUtility.Instance.PlayEffectAsync(3040, _hero);
                }
            }
            else
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0610_tagNPCUseSkill.cs
@@ -27,7 +27,7 @@
        if (_skill.skillInfo.config.EffectName != 0)
        {
            SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _actor);
            SFXPlayUtility.Instance.PlayEffectAsync(_skill.skillInfo.config.EffectName, _actor);
        }
        _actor.NextAction = _skill.skillInfo.config.Skillactmark;
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -79,14 +79,14 @@
                        {
                            for (int i = 0; i < _skill.warnPosList.Count; ++i)
                            {
                                SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _skill.warnPosList[i], Vector3.forward);
                                SFXPlayUtility.Instance.PlayEffectAsync(_skill.skillInfo.config.EffectName, _skill.warnPosList[i], Vector3.forward);
                            }
                        }
                        else
                        {
                            if ((_skill.skillInfo.config.Tag % 10) == 0 || (_skill.skillInfo.config.Tag % 10) == 1 || _attacker is GActorNpcFight)
                            {
                                SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
                                SFXPlayUtility.Instance.PlayEffectAsync(_skill.skillInfo.config.EffectName, _attacker);
                            }
                            else
                            {
Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs
@@ -59,7 +59,7 @@
                if (_playEffect)
                {
                    SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
                    SFXPlayUtility.Instance.PlayEffectAsync(_skill.skillInfo.config.EffectName, _attacker);
                }
            }
        }
Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -103,7 +103,7 @@
    }
    public IEnumerator InitalizeUIResources()
    {
    {
#if !UNITY_IOS
        yield return StartCoroutine(Co_LoadAssetBundle(ResourcesPath.windowFileBundleName));
        yield return StartCoroutine(Co_LoadAssetBundle(ResourcesPath.uiprefabFileBundleName));
@@ -161,6 +161,16 @@
    public void Co_LoadAsset(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
    {
        if (JudgeExistAsset(assetBundleName, assetName))
        {
            if (callBack != null)
            {
                callBack(true, m_AssetDict[assetBundleName][assetName]);
            }
            return;
        }
        StartCoroutine(Co_DoLoadAsset(assetBundleName, assetName, callBack));
    }
@@ -174,8 +184,6 @@
        {
            yield break;
        }
        var _assetBundleInfo = GetAssetBundleInfo(assetBundleName);
        if (_assetBundleInfo == null)
@@ -193,8 +201,14 @@
        var filePath = isBuiltin ? AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
        DebugEx.LogFormat("Co_LoadAssetBundle(): 将要加载的assetBundle包路径 => {0}", filePath);
        var assetBundle = AssetBundle.LoadFromFile(filePath);
        CacheAssetBundle(assetBundleName, assetBundle);
        var _request = AssetBundle.LoadFromFileAsync(filePath);
        while (!_request.isDone)
        {
            yield return null;
        }
        CacheAssetBundle(assetBundleName, _request.assetBundle);
    }
    private IEnumerator Co_LoadAssetBundleDependenice(AssetBundleInfo assetBundleInfo)
@@ -226,15 +240,6 @@
    private IEnumerator Co_DoLoadAsset(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
    {
        if (JudgeExistAsset(assetBundleName, assetName))
        {
            if (callBack != null)
            {
                callBack(true, m_AssetDict[assetBundleName][assetName]);
            }
            yield break;
        }
#if UNITY_EDITOR
        RunTimeABLoadLog.AddLog(assetBundleName, assetName, UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
#endif
@@ -321,7 +326,7 @@
#endif
            Sync_LoadAssetBundle(assetBundleName);
            if (m_AssetBundleDict.ContainsKey(assetBundleName))
            if (m_AssetBundleDict.ContainsKey(assetBundleName))
            {
                if (_type != null)
                {
Core/ResModule/InstanceResourcesLoader.cs
@@ -206,8 +206,7 @@
        {
            string _bundleName = StringUtility.Contact(ResourcesPath.MOB_FOLDER_NAME, "prefab_race_" + name.Replace("_UI", ""));
            string _assetName = _suffix + name;
            AssetInfo _assetInfo = new AssetInfo(_bundleName, _assetName);
            _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_assetInfo) as GameObject;
            _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_bundleName, _assetName) as GameObject;
        }
        if (_gameObject == null)
@@ -291,8 +290,7 @@
        else
        {
            string _bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, _effectModel.packageName);
            AssetInfo _assetInfo = new AssetInfo(_bundleName, _effectModel.fxName);
            _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_assetInfo) as GameObject;
            _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_bundleName, _effectModel.fxName) as GameObject;
        }
        if (_gameObject == null)
@@ -333,10 +331,7 @@
        else
        {
            var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName);
            var assetInfo = new AssetInfo(bundleName, config.fxName);
            AssetBundleUtility.Instance.Co_LoadAsset(assetInfo, _callBack);
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, _callBack);
        }
    }
}
Core/SFX/SFXPlayUtility.cs
@@ -1,6 +1,8 @@
using UnityEngine;
using System.Collections.Generic;
using TableConfig;
using System;
using System.Collections;
public class SFXPlayUtility : SingletonMonobehaviour<SFXPlayUtility>
{
@@ -12,15 +14,58 @@
        m_PoolDict = new Dictionary<int, ObjectPool<SFXController>>();
    }
    public SFXController PlayEffectAsync(int id, Transform parent, float scale = 1)
    {
        var config = Config.Instance.Get<EffectConfig>(id);
        Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
        var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName);
        if (AssetSource.effectFromEditor || AssetBundleUtility.Instance.JudgeExistAsset(bundleName, config.fxName))
        {
            return PlayBattleEffect(id, parent, scale);
        }
        else
        {
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, OnEffectLoaded);
            return null;
        }
    }
    public SFXController PlayEffectAsync(int id, GActor parent, float scale = 1)
    {
        var config = Config.Instance.Get<EffectConfig>(id);
        var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName);
        if (AssetSource.effectFromEditor || AssetBundleUtility.Instance.JudgeExistAsset(bundleName, config.fxName))
        {
            return PlayBattleEffect(id, parent, scale);
        }
        else
        {
            Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, OnEffectLoaded);
            return null;
        }
    }
    private void OnEffectLoaded(bool result, UnityEngine.Object obj)
    {
        if (result)
        {
            var _prefab = obj as GameObject;
            if (_prefab)
            {
                GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
                Debug.LogFormat("[{0}] 异步加载: {1} 完毕", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), _prefab.name);
            }
        }
    }
    public SFXController PlayBattleEffect(int id, Transform parent, float scale = 1f)
    {
        if (parent == null)
        {
            return null;
        }
        SFXController _controller = Play(id, parent, scale);
        return _controller;
    }
@@ -78,6 +123,22 @@
        return _controller;
    }
    public SFXController PlayEffectAsync(int id, Vector3 position, Vector3 forward, float scale = 1)
    {
        var config = Config.Instance.Get<EffectConfig>(id);
        var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName);
        if (AssetSource.effectFromEditor || AssetBundleUtility.Instance.JudgeExistAsset(bundleName, config.fxName))
        {
            return PlayBattleEffect(id, position, forward, scale);
        }
        else
        {
            Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, OnEffectLoaded);
            return null;
        }
    }
    public SFXController Play(int id, Transform parent, float scale = 1f)
    {
        if (parent == null)
Fight/Actor/Skill/AttackHandler.cs
@@ -36,7 +36,7 @@
        if (_hitEffectId != -1)
        {
            SFXController _controller = SFXPlayUtility.Instance.PlayBattleEffect(_hitEffectId,
            SFXController _controller = SFXPlayUtility.Instance.PlayEffectAsync(_hitEffectId,
                                                                                 target.MP_Hit.position,
                                                                                 Vector3.forward);
            _controller.transform.rotation = CameraController.Instance.CameraObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(0, 360));
@@ -62,7 +62,7 @@
                if (soConfig.hitEffectId != 0)
                {
                    SFXController _controller = SFXPlayUtility.Instance.PlayBattleEffect(soConfig.hitEffectId,
                    SFXController _controller = SFXPlayUtility.Instance.PlayEffectAsync(soConfig.hitEffectId,
                                                                                         target.MP_Hit.position,
                                                                                         Vector3.forward);
                    _controller.transform.rotation = CameraController.Instance.CameraObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(0, 360));
Fight/Actor/Skill/FlyObject/FoTransmit.cs
@@ -112,7 +112,7 @@
                    {
                        if (BattleEffectPlayRule.Instance.CanPlay(m_InitInfo.casterServerObjID))
                        {
                            SFXController _sfx = SFXPlayUtility.Instance.PlayBattleEffect(m_FoTransMit.ammoEffectId, _fight);
                            SFXController _sfx = SFXPlayUtility.Instance.PlayEffectAsync(m_FoTransMit.ammoEffectId, _fight);
                            if (_sfx)
                            {
                                _sfx.duration = m_FoTransMit.eachLastTime;
Fight/Actor/State/SMB/STM_BaseAttack.cs
@@ -103,7 +103,7 @@
                {
                    if (m_CacheSkill.mainTarget != null)
                    {
                        m_StartHeadEffect = SFXPlayUtility.Instance.PlayBattleEffect(m_CacheSkill.skillInfo.soFile.effectOnTargetHead, m_CacheSkill.mainTarget);
                        m_StartHeadEffect = SFXPlayUtility.Instance.PlayEffectAsync(m_CacheSkill.skillInfo.soFile.effectOnTargetHead, m_CacheSkill.mainTarget);
                    }
                }
@@ -939,7 +939,9 @@
            return;
        }
        SFXController _controller = SFXPlayUtility.Instance.PlayBattleEffect(id, owner);
        // SFXController _controller = SFXPlayUtility.Instance.PlayBattleEffect(id, owner);
        SFXController _controller = SFXPlayUtility.Instance.PlayEffectAsync(id, owner);
        if (_controller)
        {
            _controller.SetAnimatorSpeed(m_EffectAnimatorSpeed);
Fight/Actor/State/SMB/STM_NormalAttack.cs
@@ -81,7 +81,7 @@
                    {
                        if (BattleEffectPlayRule.Instance.CanPlay(_player.ServerInstID))
                        {
                            m_StartHeadEffect = SFXPlayUtility.Instance.PlayBattleEffect(m_CacheSkill.skillInfo.soFile.effectOnTargetHead, _player.SelectTarget);
                            m_StartHeadEffect = SFXPlayUtility.Instance.PlayEffectAsync(m_CacheSkill.skillInfo.soFile.effectOnTargetHead, _player.SelectTarget);
                        }
                    }
                }
Fight/Actor/Status/Status_Base.cs
@@ -56,7 +56,7 @@
                    if (_playEffect)
                    {
                        m_Effect = SFXPlayUtility.Instance.PlayBattleEffect(m_SkillConfig.BuffEffectID, _target);
                        m_Effect = SFXPlayUtility.Instance.PlayEffectAsync(m_SkillConfig.BuffEffectID, _target);
                        if (m_Effect)
                        {
                            m_Effect.m_OnFinished += OnEffectOver;
Fight/Actor/UserInputHandler.cs
@@ -204,7 +204,7 @@
            if (Time.realtimeSinceStartup - m_LastClickTime > 0.5f)
            {
                SFXPlayUtility.Instance.PlayBattleEffect(1060, _hitInfo.point, Vector3.forward);
                SFXPlayUtility.Instance.PlayEffectAsync(1060, _hitInfo.point, Vector3.forward);
                m_LastClickTime = Time.realtimeSinceStartup;
            }
Fight/GameActor/GA_NpcSummonFight.cs
@@ -88,14 +88,11 @@
    }
    public sealed override void OnSelect()
    {
        throw new System.NotImplementedException();
    }
    public sealed override void OnUnSelect()
    {
        throw new System.NotImplementedException();
    }
    public sealed override void OnClick()
    {
        throw new System.NotImplementedException();
    }
}
Fight/GameActor/GActorPlayerBase.cs
@@ -2380,8 +2380,11 @@
        {
            if (m_RushEffect == null)
            {
                m_RushEffect = SFXPlayUtility.Instance.PlayBattleEffect(50401, this);
                m_RushEffect.duration = 0;
                m_RushEffect = SFXPlayUtility.Instance.PlayEffectAsync(50401, this);
                if (m_RushEffect)
                {
                    m_RushEffect.duration = 0;
                }
            }
        }
    }