| Core/ResModule/GameObjectPoolManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/ResModule/InstanceResourcesLoader.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GActorPlayerBase.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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)