少年修仙传客户端代码仓库
client_Hale
2018-12-05 32500ae76068e67da56907b2f52aa34736204511
5232 子 【1.3.100】场景模型隐藏优化 / 【1.3.100】【前端】场景模型隐藏优化
3个文件已修改
110 ■■■■ 已修改文件
Core/ResModule/GameObjectPoolManager.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/InstanceResourcesLoader.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/GameObjectPoolManager.cs
@@ -146,6 +146,37 @@
        return RequestPool(prefab).Request();
    }
    public GameObject RequestEmptyJY()
    {
        var _prefab = InstanceResourcesLoader.LoadEmptyJY();
        if (!_prefab)
        {
            return null;
        }
        var _pool = RequestPool(_prefab);
        _pool.assetName = InstanceResourcesLoader.emptyJyName;
        _pool.assetBundleName = "mob/prefab_race_jy";
        return _pool.Request();
    }
    public void ReleaseEmptyJY(GameObject go)
    {
        var _prefab = InstanceResourcesLoader.LoadEmptyJY();
        if (!_prefab)
        {
            return;
        }
        GameObjectPool _pool = RequestPool(_prefab);
        if (_pool != null)
        {
            _pool.Release(go);
        }
    }
    public GameObject RequestDefaultPet()
    {
        GameObject _prefab = InstanceResourcesLoader.LoadMob(GeneralDefine.ModeDefaultConfig[2][0],
Core/ResModule/InstanceResourcesLoader.cs
@@ -13,6 +13,35 @@
    public static readonly string secondarySuffix = "Prefab_Secondary_";
    public static readonly string handSuffix = "Prefab_Hand_";
    public static readonly string wingSuffix = "Prefab_Wing_";
    public static readonly string emptyJyName = "Prefab_Race_JY";
    public static GameObject LoadEmptyJY()
    {
        GameObject _prefab = null;
        if (AssetSource.mobFromEditor)
        {
#if UNITY_EDITOR
            string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
                                                        "Mob/",
                                                        emptyJyName,
                                                        ".prefab");
            _prefab = AssetDatabase.LoadAssetAtPath<GameObject>(_resourcePath);
#endif
        }
        else
        {
            _prefab = AssetBundleUtility.Instance.Sync_LoadAsset("mob/prefab_race_jy", emptyJyName) as GameObject;
        }
        if (_prefab == null)
        {
            DebugEx.LogErrorFormat("InstanceResourcesLoader.LoadModel() => 加载不到资源: {0}/{1} ", "mob/prefab_race_jy", emptyJyName);
        }
        return _prefab;
    }
    public static GameObject LoadNpc(int id)
    {
Fight/GameActor/GActorPlayerBase.cs
@@ -7,6 +7,7 @@
public abstract class GActorPlayerBase : GActorFight
{
    private GameObject m_EmptyJY;
    public static UnityAction<bool> onShowEffect;
    private bool m_LoadDefaultHorse;
    public struct EquipInfo
@@ -2012,6 +2013,21 @@
    }
    public sealed override void ReleaseShadow()
    {
        if (m_ShadowCaster != null)
        {
            m_ShadowCaster.Stop();
            m_ShadowCaster = null;
        }
        if (m_Shadow)
        {
            SFXPlayUtility.Instance.Release(m_Shadow);
            m_Shadow = null;
        }
    }
    public sealed override void RequestLifeBar()
    {
        // 此类型, 不做处理
@@ -2033,21 +2049,6 @@
            m_HeadUpName.target = null;
            HeadUpName.Recycle(m_HeadUpName);
            m_HeadUpName = null;
        }
    }
    public sealed override void ReleaseShadow()
    {
        if (m_ShadowCaster != null)
        {
            m_ShadowCaster.Stop();
            m_ShadowCaster = null;
        }
        if (m_Shadow)
        {
            SFXPlayUtility.Instance.Release(m_Shadow);
            m_Shadow = null;
        }
    }
@@ -2137,6 +2138,25 @@
        GA_Player _player = this as GA_Player;
        if (_player != null)
        {
            if (m_EmptyJY)
            {
                GameObjectPoolManager.Instance.ReleaseEmptyJY(m_EmptyJY);
                m_EmptyJY = null;
            }
            if (!showOrHide)
            {
                m_EmptyJY = GameObjectPoolManager.Instance.RequestEmptyJY();
                m_EmptyJY.transform.SetParent(Root);
                m_EmptyJY.transform.localPosition = Vector3.zero;
                m_EmptyJY.transform.localScale = Vector3.one;
                m_EmptyJY.AddMissingComponent<FacingMainCamera>();
                m_Shadow = SFXPlayUtility.Instance.PlayBattleEffect(999999, m_Root);
                m_Shadow.duration = 0;
                m_Shadow.transform.localScale = new Vector3(1 / Root.transform.localScale.x, 1, 1 / Root.transform.localScale.z);
            }
            GA_Pet _pet = GAMgr.Instance.GetBySID(ServerInstID * 10 + 1) as GA_Pet;
            var _index = BattleEffectPlayRule.Instance.GetIndex(ServerInstID);
            if (_index != -1 && _index < BattleEffectPlayRule.Instance.petLimit)