//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using GameFramework.Entity; using UnityEngine; namespace UnityGameFramework.Runtime { /// /// 默认实体辅助器。 /// public class DefaultEntityHelper : EntityHelperBase { private ResourceComponent m_ResourceComponent = null; /// /// 实例化实体。 /// /// 要实例化的实体资源。 /// 实例化后的实体。 public override object InstantiateEntity(object entityAsset) { return Instantiate((Object)entityAsset); } /// /// 创建实体。 /// /// 实体实例。 /// 实体所属的实体组。 /// 用户自定义数据。 /// 实体。 public override IEntity CreateEntity(object entityInstance, IEntityGroup entityGroup, object userData) { GameObject gameObject = entityInstance as GameObject; if (gameObject == null) { Log.Error("Entity instance is invalid."); return null; } Transform transform = gameObject.transform; transform.SetParent(((MonoBehaviour)entityGroup.Helper).transform); return gameObject.GetOrAddComponent(); } /// /// 释放实体。 /// /// 要释放的实体资源。 /// 要释放的实体实例。 public override void ReleaseEntity(object entityAsset, object entityInstance) { m_ResourceComponent.UnloadAsset(entityAsset); Destroy((Object)entityInstance); } private void Start() { m_ResourceComponent = GameEntry.GetComponent(); if (m_ResourceComponent == null) { Log.Fatal("Resource component is invalid."); return; } } } }