From 6c8108e3ea9da24941b0001da8e14b74cf2b3a25 Mon Sep 17 00:00:00 2001 From: sunqinzhe Date: Wed, 17 Dec 2025 12:07:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86EntityDatabase=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/EntityType.cs | 3 +- Assets/Scripts/Server/WorldManager.cs | 3 +- .../Runtime/EntityDataBlock.cs.meta | 3 -- .../Runtime/EntityDataBlock.gen.cs.meta | 3 -- .../Runtime/EntityDataSet.cs | 14 -------- ...DataBlock.cs => EntityDataStruct.Block.cs} | 2 +- .../Runtime/EntityDataStruct.Block.cs.meta | 11 ++++++ ...k.gen.cs => EntityDataStruct.Block.gen.cs} | 0 .../EntityDataStruct.Block.gen.cs.meta | 11 ++++++ .../Runtime/EntityDataStruct.cs | 10 ++++++ .../Runtime/EntityDataStruct.cs.meta | 3 ++ .../Runtime/EntityDatabase.cs | 35 +++++++++++++++++++ ...DataSet.cs.meta => EntityDatabase.cs.meta} | 0 13 files changed, 73 insertions(+), 25 deletions(-) delete mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs.meta delete mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs.meta delete mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs rename LocalPackages/com.nimin.tinyecs/Runtime/{EntityDataBlock.cs => EntityDataStruct.Block.cs} (98%) create mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs.meta rename LocalPackages/com.nimin.tinyecs/Runtime/{EntityDataBlock.gen.cs => EntityDataStruct.Block.gen.cs} (100%) create mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs.meta create mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs create mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs.meta create mode 100644 LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs rename LocalPackages/com.nimin.tinyecs/Runtime/{EntityDataSet.cs.meta => EntityDatabase.cs.meta} (100%) diff --git a/Assets/Scripts/EntityType.cs b/Assets/Scripts/EntityType.cs index a9fcee7..e736fbc 100644 --- a/Assets/Scripts/EntityType.cs +++ b/Assets/Scripts/EntityType.cs @@ -2,8 +2,7 @@ namespace ECSTest { public enum EntityType { - Unit, - Monster, + Cannon, Bullet, } diff --git a/Assets/Scripts/Server/WorldManager.cs b/Assets/Scripts/Server/WorldManager.cs index e5a40a2..d2beba7 100644 --- a/Assets/Scripts/Server/WorldManager.cs +++ b/Assets/Scripts/Server/WorldManager.cs @@ -4,7 +4,6 @@ namespace ECSTest.Server { public struct WorldManager { - public EntityCollection entities; - public EntityDataBlockChain chain; + public EntityDatabase bulletDatabase; } } \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs.meta deleted file mode 100644 index 26e07fa..0000000 --- a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 24392c1216204b6ea64acd57bb43441b -timeCreated: 1668251924 \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs.meta deleted file mode 100644 index 0f7795a..0000000 --- a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c9227b743e78463b8df770cefc98fb18 -timeCreated: 1668274486 \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs deleted file mode 100644 index 292f144..0000000 --- a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Unity.Collections; -using Unity.Mathematics; - -namespace GameCore.TinyECS -{ - public struct EntityDataSet : IDisposable - { - public void Dispose() - { - //TODO - } - } -} \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs similarity index 98% rename from LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs rename to LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs index c13670e..7fccb7f 100644 --- a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs @@ -13,7 +13,7 @@ namespace GameCore.TinyECS public int elementAlign; } - public unsafe struct EntityDataBlockChain : IDisposable + public unsafe struct EntityDataBlockChain : IEntityDataStruct { public readonly EntityDataBlockMeta blockMeta; private FixedList512Bytes blockPtrList; diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs.meta new file mode 100644 index 0000000..13c2320 --- /dev/null +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b0b5bb1c56f2114ba60d9154d447872 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs similarity index 100% rename from LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs rename to LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs.meta new file mode 100644 index 0000000..c43ca48 --- /dev/null +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 747b2bec360ee8141b0b46886b09f92d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs new file mode 100644 index 0000000..91311dc --- /dev/null +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs @@ -0,0 +1,10 @@ +using System; + +namespace GameCore.TinyECS +{ + public interface IEntityDataStruct : IDisposable + { + void Add(); + void Remove(int index); + } +} \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs.meta new file mode 100644 index 0000000..8a3e971 --- /dev/null +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 933c4528e6cf415dbfb79a148896839d +timeCreated: 1765943532 \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs new file mode 100644 index 0000000..8f0e839 --- /dev/null +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs @@ -0,0 +1,35 @@ +using System; +using Unity.Collections; +using Unity.Mathematics; + +namespace GameCore.TinyECS +{ + public struct EntityDatabase : IDisposable where TEnum : unmanaged where TData : unmanaged, IEntityDataStruct + { + public TData dataStruct; + public EntityGenerator generator; + public EntityCollection collection; + + public Entity AddEntity() + { + var entity = generator.Create(); + collection.Add(entity); + dataStruct.Add(); + return entity; + } + + public void RemoveEntity(Entity entity) + { + generator.Delete(entity); + if (collection.Remove(entity, out var index, out var _)) + dataStruct.Remove(index); + } + + public void Dispose() + { + generator.Dispose(); + collection.Dispose(); + dataStruct.Dispose(); + } + } +} \ No newline at end of file diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs.meta b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs.meta similarity index 100% rename from LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs.meta rename to LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs.meta