123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 loyalsoft. All rights reserved.
- // Homepage: http://www.game7000.com/
- // Feedback: http://www.game7000.com/
- //------------------------------------------------------------
- using GameFramework.ObjectPool;
- namespace GameFramework.Entity
- {
- internal sealed partial class EntityManager : GameFrameworkModule, IEntityManager
- {
- /// <summary>
- /// 实体实例对象。
- /// </summary>
- private sealed class EntityInstanceObject : ObjectBase
- {
- private object m_EntityAsset;
- private IEntityHelper m_EntityHelper;
- public EntityInstanceObject()
- {
- m_EntityAsset = null;
- m_EntityHelper = null;
- }
- public static EntityInstanceObject Create(string name, object entityAsset, object entityInstance, IEntityHelper entityHelper)
- {
- if (entityAsset == null)
- {
- throw new GameFrameworkException("Entity asset is invalid.");
- }
- if (entityHelper == null)
- {
- throw new GameFrameworkException("Entity helper is invalid.");
- }
- EntityInstanceObject entityInstanceObject = ReferencePool.Acquire<EntityInstanceObject>();
- entityInstanceObject.Initialize(name, entityInstance);
- entityInstanceObject.m_EntityAsset = entityAsset;
- entityInstanceObject.m_EntityHelper = entityHelper;
- return entityInstanceObject;
- }
- public override void Clear()
- {
- base.Clear();
- m_EntityAsset = null;
- m_EntityHelper = null;
- }
- public override void Release(bool isShutdown)
- {
- m_EntityHelper.ReleaseEntity(m_EntityAsset, Target);
- }
- }
- }
- }
|