From f0c9ec2000b8ca81222d60cc06cea1b7933d946a Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Wed, 7 Sep 2022 14:50:18 +0800 Subject: [PATCH] EntitySystem EntitySystem --- ...tInspector.cs => EntitySystemInspector.cs} | 6 +-- ....cs.meta => EntitySystemInspector.cs.meta} | 0 .../Runtime/Entity/Core/Entity/Entity.cs | 2 +- .../Entity/Core/Entity/EntityExtension.cs | 47 +++++++++++++------ ...tyGroup.cs => EntitySystem.EntityGroup.cs} | 2 +- ....meta => EntitySystem.EntityGroup.cs.meta} | 0 .../{EntityComponent.cs => EntitySystem.cs} | 4 +- ...Component.cs.meta => EntitySystem.cs.meta} | 0 8 files changed, 40 insertions(+), 21 deletions(-) rename Assets/TEngine/Scripts/Editor/Inspector/{EntityComponentInspector.cs => EntitySystemInspector.cs} (94%) rename Assets/TEngine/Scripts/Editor/Inspector/{EntityComponentInspector.cs.meta => EntitySystemInspector.cs.meta} (100%) rename Assets/TEngine/Scripts/Runtime/Entity/{EntityComponent.EntityGroup.cs => EntitySystem.EntityGroup.cs} (95%) rename Assets/TEngine/Scripts/Runtime/Entity/{EntityComponent.EntityGroup.cs.meta => EntitySystem.EntityGroup.cs.meta} (100%) rename Assets/TEngine/Scripts/Runtime/Entity/{EntityComponent.cs => EntitySystem.cs} (99%) rename Assets/TEngine/Scripts/Runtime/Entity/{EntityComponent.cs.meta => EntitySystem.cs.meta} (100%) diff --git a/Assets/TEngine/Scripts/Editor/Inspector/EntityComponentInspector.cs b/Assets/TEngine/Scripts/Editor/Inspector/EntitySystemInspector.cs similarity index 94% rename from Assets/TEngine/Scripts/Editor/Inspector/EntityComponentInspector.cs rename to Assets/TEngine/Scripts/Editor/Inspector/EntitySystemInspector.cs index 6efba58d..4dbe758c 100644 --- a/Assets/TEngine/Scripts/Editor/Inspector/EntityComponentInspector.cs +++ b/Assets/TEngine/Scripts/Editor/Inspector/EntitySystemInspector.cs @@ -4,8 +4,8 @@ using TEngine.Runtime.Entity; namespace TEngine.Editor { - [CustomEditor(typeof(EntityComponent))] - internal sealed class EntityComponentInspector : TEngineInspector + [CustomEditor(typeof(EntitySystem))] + internal sealed class EntitySystemInspector : TEngineInspector { private SerializedProperty m_EnableShowEntityUpdateEvent = null; private SerializedProperty m_EnableShowEntityDependencyAssetEvent = null; @@ -23,7 +23,7 @@ namespace TEngine.Editor serializedObject.Update(); - EntityComponent t = (EntityComponent)target; + EntitySystem t = (EntitySystem)target; EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { diff --git a/Assets/TEngine/Scripts/Editor/Inspector/EntityComponentInspector.cs.meta b/Assets/TEngine/Scripts/Editor/Inspector/EntitySystemInspector.cs.meta similarity index 100% rename from Assets/TEngine/Scripts/Editor/Inspector/EntityComponentInspector.cs.meta rename to Assets/TEngine/Scripts/Editor/Inspector/EntitySystemInspector.cs.meta diff --git a/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/Entity.cs b/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/Entity.cs index 11aa6359..cd84e5a3 100644 --- a/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/Entity.cs +++ b/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/Entity.cs @@ -6,7 +6,7 @@ namespace TEngine.Runtime.Entity /// /// 实体。 /// - public sealed class Entity : MonoBehaviour, IEntity + public partial class Entity : MonoBehaviour, IEntity { private int m_Id; private string m_EntityAssetName; diff --git a/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/EntityExtension.cs b/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/EntityExtension.cs index d756ee2d..d391ff37 100644 --- a/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/EntityExtension.cs +++ b/Assets/TEngine/Scripts/Runtime/Entity/Core/Entity/EntityExtension.cs @@ -7,17 +7,36 @@ /// /// 生成客户端序列化ID/EntityID,服务器默认不用 /// - /// + /// /// - public static int GenerateSerialId(this EntityComponent entityComponent) + public static int GenerateSerialId(this EntitySystem entitySystem) { return ++_serialId; } + + /// + /// 创建实体 + /// + /// EntitySystem + /// 实体资源路径 + /// 实体数据 + /// 实体实例对象池自动释放可释放对象的间隔秒数 + /// 实体实例对象池容量 + /// 实体实例对象池对象过期秒数 + /// 实体实例对象池的优先级 + /// 实体类型 + public static void CreateEntity(this EntitySystem entitySystem, string assetPath, + object userData, float autoReleaseInterval = 60f, + int capacity = 60, float expireTime = 60f, int priority = 0) + { + entitySystem.CreateEntity(typeof(T), assetPath, userData, autoReleaseInterval, capacity, expireTime, + priority); + } /// /// 创建实体 /// - /// EntityComponent + /// EntitySystem /// 实体资源路径 /// EntityData实体数据 /// 实体实例对象池自动释放可释放对象的间隔秒数 @@ -25,7 +44,7 @@ /// 实体实例对象池对象过期秒数 /// 实体实例对象池的优先级 /// 实体类型 - public static void CreateEntity(this EntityComponent entityComponent, string assetPath, + public static void CreateEntity(this EntitySystem entitySystem, string assetPath, EntityData userData = null, float autoReleaseInterval = 60f, int capacity = 60, float expireTime = 60f, int priority = 0) { @@ -34,14 +53,14 @@ userData = EntityData.Create(); } - entityComponent.CreateEntity(typeof(T), assetPath, userData, autoReleaseInterval, capacity, expireTime, + entitySystem.CreateEntity(typeof(T), assetPath, userData, autoReleaseInterval, capacity, expireTime, priority); } /// /// 创建实体 /// - /// + /// /// /// /// @@ -49,20 +68,20 @@ /// /// /// - public static void CreateEntity(this EntityComponent entityComponent, System.Type logicType, string assetPath, + public static void CreateEntity(this EntitySystem entitySystem, System.Type logicType, string assetPath, object userData = null, float autoReleaseInterval = 60f, int capacity = 60, float expireTime = 60f, int priority = 0) { - var entityId = entityComponent.GenerateSerialId(); - entityComponent.CreateEntity(entityId, logicType, assetPath, userData, autoReleaseInterval, capacity, + var entityId = entitySystem.GenerateSerialId(); + entitySystem.CreateEntity(entityId, logicType, assetPath, userData, autoReleaseInterval, capacity, expireTime, priority); } /// /// 创建实体 /// - /// + /// /// /// /// @@ -71,7 +90,7 @@ /// /// /// - public static void CreateEntity(this EntityComponent entityComponent, int entityId, + public static void CreateEntity(this EntitySystem entitySystem, int entityId, System.Type logicType, string assetPath, object userData = null, float autoReleaseInterval = 60f, int capacity = 60, float expireTime = 60f, int priority = 0) @@ -82,14 +101,14 @@ return; } - if (!entityComponent.HasEntityGroup(logicType.Name)) + if (!entitySystem.HasEntityGroup(logicType.Name)) { - EntityComponent.Instance.AddEntityGroup(logicType.Name, + EntitySystem.Instance.AddEntityGroup(logicType.Name, autoReleaseInterval, capacity, expireTime, priority); } - entityComponent.ShowEntity(entityId, logicType, assetPath, logicType.Name, + entitySystem.ShowEntity(entityId, logicType, assetPath, logicType.Name, Constant.DefaultPriority, userData); } } diff --git a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.EntityGroup.cs b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.EntityGroup.cs similarity index 95% rename from Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.EntityGroup.cs rename to Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.EntityGroup.cs index 37531162..d81b256f 100644 --- a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.EntityGroup.cs +++ b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.EntityGroup.cs @@ -3,7 +3,7 @@ using UnityEngine; namespace TEngine.Runtime.Entity { - public sealed partial class EntityComponent + public sealed partial class EntitySystem { [Serializable] private sealed class EntityGroup diff --git a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.EntityGroup.cs.meta b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.EntityGroup.cs.meta similarity index 100% rename from Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.EntityGroup.cs.meta rename to Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.EntityGroup.cs.meta diff --git a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.cs b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.cs similarity index 99% rename from Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.cs rename to Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.cs index 3b8c673a..00d55cf2 100644 --- a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.cs +++ b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.cs @@ -9,8 +9,8 @@ namespace TEngine.Runtime.Entity /// 实体组件。 /// [DisallowMultipleComponent] - [AddComponentMenu("TEngine/EntityManager")] - public sealed partial class EntityComponent : UnitySingleton + [AddComponentMenu("TEngine/EntitySys")] + public sealed partial class EntitySystem : UnitySingleton { private const int DefaultPriority = 0; diff --git a/Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.cs.meta b/Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.cs.meta similarity index 100% rename from Assets/TEngine/Scripts/Runtime/Entity/EntityComponent.cs.meta rename to Assets/TEngine/Scripts/Runtime/Entity/EntitySystem.cs.meta