using UnityEngine; namespace TEngine { /// /// 默认实体辅助器。 /// public class DefaultEntityHelper : EntityHelperBase { private IResourceModule _resourceModule = null; /// /// 实例化实体。 /// /// 要实例化的实体资源。 /// 实例化后的实体。 public override object InstantiateEntity(object entityAsset) { return Instantiate((Object)entityAsset); } /// /// 创建实体。 /// /// 实体实例。 /// 实体所属的实体组。 /// 用户自定义数据。 /// 实体。 public override IEntity CreateEntity(object entityInstance, IEntityGroup entityGroup, object userData) { GameObject entityGameObject = entityInstance as GameObject; if (entityGameObject == null) { Log.Error("Entity instance is invalid."); return null; } Transform entityTransform = entityGameObject.transform; entityTransform.SetParent(((MonoBehaviour)entityGroup.Helper).transform); var entity = entityGameObject.GetComponent(); if (entity == null) { entity = entityGameObject.AddComponent(); } return entity; } /// /// 释放实体。 /// /// 要释放的实体资源。 /// 要释放的实体实例。 public override void ReleaseEntity(object entityAsset, object entityInstance) { Destroy((Object)entityInstance); } private void Start() { _resourceModule = ModuleSystem.GetModule(); if (_resourceModule == null) { Log.Fatal("Resource component is invalid."); return; } } } }