From dea6cd5fa3ee4cee348ba73a07be7c9af5418c4e Mon Sep 17 00:00:00 2001 From: m0_75251201 Date: Sun, 17 Aug 2025 12:21:46 +0800 Subject: [PATCH] =?UTF-8?q?(client)=20feat:=E4=BF=AE=E5=A4=8DTick=E4=B8=AD?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=AE=9E=E4=BD=93=E5=AF=BC=E8=87=B4=E9=81=8D?= =?UTF-8?q?=E5=8E=86=E6=97=B6=E4=BF=AE=E6=94=B9=E5=88=97=E8=A1=A8=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Scripts/Managers/EntityManage.cs | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/Client/Assets/Scripts/Managers/EntityManage.cs b/Client/Assets/Scripts/Managers/EntityManage.cs index 4b593a3..8bf5eac 100644 --- a/Client/Assets/Scripts/Managers/EntityManage.cs +++ b/Client/Assets/Scripts/Managers/EntityManage.cs @@ -20,6 +20,9 @@ namespace Managers public EntityPrefab defaultEntityPrefab; + + private List> pendingAdditions; + public LinkedList FindEntitiesByFaction(string factionKey) { if (factionEntities.TryGetValue(factionKey, out var entities)) @@ -56,6 +59,20 @@ namespace Managers Destroy(entityToRemove.gameObject); } } + + if (pendingAdditions.Any()) + { + foreach (var entity in pendingAdditions) + { + if (!factionEntities.ContainsKey(entity.Item1)) + { + factionEntities[entity.Item1] = new LinkedList(); + } + + factionEntities[entity.Item1].AddLast(entity.Item2); + } + pendingAdditions.Clear(); + } } /// @@ -96,12 +113,14 @@ namespace Managers // 管理派系列表 var factionKey = def.attributes.label ?? "default"; - if (!factionEntities.ContainsKey(factionKey)) - { - factionEntities[factionKey] = new LinkedList(); - } + pendingAdditions.Add(Tuple.Create(factionKey, entityComponent)); - factionEntities[factionKey].AddLast(entityComponent); + // if (!factionEntities.ContainsKey(factionKey)) + // { + // factionEntities[factionKey] = new LinkedList(); + // } + + // factionEntities[factionKey].AddLast(entityComponent); return entityComponent; } @@ -219,13 +238,14 @@ namespace Managers var entityComponent = entity.GetComponent(); const string factionKey = "default"; - if (!factionEntities.ContainsKey(factionKey)) - { - factionEntities[factionKey] = new LinkedList(); - } + pendingAdditions.Add(Tuple.Create(factionKey, entityComponent)); + // if (!factionEntities.ContainsKey(factionKey)) + // { + // factionEntities[factionKey] = new LinkedList(); + // } - entityComponent.DefaultInit(); - factionEntities[factionKey].AddLast(entityComponent); + // entityComponent.DefaultInit(); + // factionEntities[factionKey].AddLast(entityComponent); } protected override void OnStart()