/// <summary> /// 初始化界面管理器的新实例。 /// </summary> public UIManager() { m_UIGroups = new Dictionary <string, UIGroup>(); m_UIFormsBeingLoaded = new List <int>(); m_UIFormAssetNamesBeingLoaded = new List <string>(); m_UIFormsToReleaseOnLoad = new HashSet <int>(); m_RecycleQueue = new LinkedList <IUIForm>(); m_LoadAssetCallbacks = new LoadAssetCallbacks(LoadUIFormSuccessCallback, LoadUIFormFailureCallback, LoadUIFormUpdateCallback, LoadUIFormDependencyAssetCallback); m_ObjectPoolManager = null; m_ResourceManager = null; m_InstancePool = null; m_UIFormHelper = null; m_Serial = 0; m_OpenUIFormSuccessEventHandler = null; m_OpenUIFormFailureEventHandler = null; m_OpenUIFormUpdateEventHandler = null; m_OpenUIFormDependencyAssetEventHandler = null; m_CloseUIFormCompleteEventHandler = null; }
/// <summary> /// 初始化实体管理器的新实例。 /// </summary> public EntityManager() { m_EntityInfos = new Dictionary <int, EntityInfo>(); m_EntityGroups = new Dictionary <string, EntityGroup>(StringComparer.Ordinal); m_EntitiesBeingLoaded = new Dictionary <int, int>(); m_EntitiesToReleaseOnLoad = new HashSet <int>(); m_RecycleQueue = new Queue <EntityInfo>(); m_LoadAssetCallbacks = new LoadAssetCallbacks(LoadAssetSuccessCallback, LoadAssetFailureCallback, LoadAssetUpdateCallback, LoadAssetDependencyAssetCallback); m_ObjectPoolManager = null; m_ResourceManager = null; m_EntityHelper = null; m_Serial = 0; m_IsShutdown = false; m_ShowEntitySuccessEventHandler = null; m_ShowEntityFailureEventHandler = null; m_ShowEntityUpdateEventHandler = null; m_ShowEntityDependencyAssetEventHandler = null; m_HideEntityCompleteEventHandler = null; }
/// <summary> /// 初始化界面管理器的新实例。 /// </summary> public UIManager() { m_UIGroups = new Dictionary <string, UIGroup>(StringComparer.Ordinal); m_UIFormsBeingLoaded = new Dictionary <int, string>(); m_UIFormsToReleaseOnLoad = new HashSet <int>(); m_RecycleQueue = new Queue <IUIForm>(); m_LoadAssetCallbacks = new LoadAssetCallbacks(LoadAssetSuccessCallback, LoadAssetFailureCallback, LoadAssetUpdateCallback, LoadAssetDependencyAssetCallback); m_ObjectPoolManager = null; m_ResourceManager = null; m_InstancePool = null; m_UIFormHelper = null; m_Serial = 0; m_IsShutdown = false; m_OpenUIFormSuccessEventHandler = null; m_OpenUIFormFailureEventHandler = null; m_OpenUIFormUpdateEventHandler = null; m_OpenUIFormDependencyAssetEventHandler = null; m_CloseUIFormCompleteEventHandler = null; }
public static ObjectInstance FromXProxy(LevelX.ObjectInstanceX proxy, IObjectPoolManager manager) { if (proxy == null) { return(null); } ObjectPool pool = manager.PoolFromItemKey(proxy.Class); if (pool == null) { return(null); } ObjectClass objClass = pool.Objects[proxy.Class]; if (objClass == null) { return(null); } return(new ObjectInstance(proxy, objClass)); }
/// <summary> /// 初始化实体组的新实例。 /// </summary> /// <param name="name">实体组名称。</param> /// <param name="instanceAutoReleaseInterval">实体实例对象池自动释放可释放对象的间隔秒数。</param> /// <param name="instanceCapacity">实体实例对象池容量。</param> /// <param name="instanceExpireTime">实体实例对象池对象过期秒数。</param> /// <param name="instancePriority">实体实例对象池的优先级。</param> /// <param name="entityGroupHelper">实体组辅助器。</param> /// <param name="objectPoolManager">对象池管理器。</param> public EntityGroup(string name, float instanceAutoReleaseInterval, int instanceCapacity, float instanceExpireTime, int instancePriority, IEntityGroupHelper entityGroupHelper, IObjectPoolManager objectPoolManager) { if (string.IsNullOrEmpty(name)) { throw new GameFrameworkException("Entity group name is invalid."); } if (entityGroupHelper == null) { throw new GameFrameworkException("Entity group helper is invalid."); } m_Name = name; m_EntityGroupHelper = entityGroupHelper; m_InstancePool = objectPoolManager.CreateSingleSpawnObjectPool <EntityInstanceObject>(Utility.Text.Format("Entity Instance Pool ({0})", name), instanceCapacity, instanceExpireTime, instancePriority); m_InstancePool.AutoReleaseInterval = instanceAutoReleaseInterval; m_Entities = new LinkedList <IEntity>(); }
/// <summary> /// 设置对象池管理器。 /// </summary> /// <param name="objectPoolManager">对象池管理器。</param> public void SetObjectPoolManager(IObjectPoolManager objectPoolManager) { m_AssetPool = objectPoolManager.CreateMultiSpawnObjectPool <AssetObject>("Asset Pool"); m_ResourcePool = objectPoolManager.CreateMultiSpawnObjectPool <ResourceObject>("Resource Pool"); }
/// <summary> /// 设置对象池管理器。 /// </summary> /// <param name="objectPoolManager">对象池管理器。</param> public void SetObjectPoolManager(IObjectPoolManager objectPoolManager) { throw new NotSupportedException("SetObjectPoolManager"); }
public static ObjectInstance FromXProxy(LevelX.ObjectInstanceX proxy, IObjectPoolManager manager) { if (proxy == null) return null; ObjectPool pool = manager.PoolFromItemKey(proxy.Class); if (pool == null) return null; ObjectClass objClass = pool.Objects[proxy.Class]; if (objClass == null) return null; return new ObjectInstance(proxy, objClass); }
public void BindObjectPoolManager(IObjectPoolManager manager) { if (_poolManager != null) { _poolManager.PoolAdded -= ObjectPoolAdded; _poolManager.PoolRemoved -= ObjectPoolRemoved; foreach (var pool in _poolManager.Pools) UnhookObjectPool(pool); } _poolManager = manager; if (_poolManager != null) { _poolManager.PoolAdded += ObjectPoolAdded; _poolManager.PoolRemoved += ObjectPoolRemoved; foreach (var pool in _poolManager.Pools) HookObjectPool(pool); InitializePoolPresenters(); } else { ClearPoolPresenters(); } OnSyncObjectPoolManager(EventArgs.Empty); }
/// <summary> /// 初始化实体组的新实例。 /// </summary> /// <param name="name">实体组名称。</param> /// <param name="instanceAutoReleaseInterval">实体实例对象池自动释放可释放对象的间隔秒数。</param> /// <param name="instanceCapacity">实体实例对象池容量。</param> /// <param name="instanceExpireTime">实体实例对象池对象过期秒数。</param> /// <param name="instancePriority">实体实例对象池的优先级。</param> /// <param name="ItemGroupHelper">实体组辅助器。</param> /// <param name="objectPoolManager">对象池管理器。</param> public ItemGroup(string name, float instanceAutoReleaseInterval, int instanceCapacity, float instanceExpireTime, int instancePriority, IItemGroupHelper ItemGroupHelper, IObjectPoolManager objectPoolManager) { if (string.IsNullOrEmpty(name)) { throw new GameFrameworkException("Item group name is invalid."); } if (ItemGroupHelper == null) { throw new GameFrameworkException("Item group helper is invalid."); } m_Name = name; m_ItemGroupHelper = ItemGroupHelper; m_InstancePool = objectPoolManager.CreateSingleSpawnObjectPool <ItemInstanceObject>(Utility.Text.Format("Item Instance Pool ({0})", name), instanceCapacity, instanceExpireTime, instancePriority); m_InstancePool.AutoReleaseInterval = instanceAutoReleaseInterval; m_Items = new GameFrameworkLinkedList <IItem>(); m_CachedNode = null; }
public void SetObjectPoolManager(IObjectPoolManager objectPoolManager) { //throw new NotImplementedException(); }
private void BindObjectManager(IObjectPoolManager manager) { if (_objectPoolManager == manager) return; if (_objectPoolManager != null) { _objectPoolManager.Pools.ResourceAdded -= ObjectPoolAddedHandler; _objectPoolManager.Pools.ResourceRemoved -= ObjectPoolRemovedHandler; foreach (ObjectPool pool in _objectPoolManager.Pools) UnhookObjectPool(pool); } _objectPoolManager = manager; if (_objectPoolManager != null) { _objectPoolManager.Pools.ResourceAdded += ObjectPoolAddedHandler; _objectPoolManager.Pools.ResourceRemoved += ObjectPoolRemovedHandler; foreach (ObjectPool pool in _objectPoolManager.Pools) HookObjectPool(pool); } }
public void SetObjectPoolManager(IObjectPoolManager objectPoolManager) { m_ResourceLoader.SetObjectPoolManager(objectPoolManager); }