Checkpoint 5 & Checkpoint 6:

- SimulationWorld 只做逻辑计算与数据输出,不再直接写 Transform
- 在 ShowEntitySuccess 中接入 Pickup/Projectile 占位注册:
	- Drop 走 UpsertPickup(...)
	- Bullet/Projectile 走 UpsertProjectile(...)
- 在 HideEntityComplete 中接入对应回收:
	- Drop 走 RemovePickupByEntityId(...)
	- Bullet/Projectile 走 RemoveProjectileByEntityId(...)
- 新增占位数据构造:
	- CreatePickupSimData(...)
	- CreateProjectileSimData(...)
- 调整 EnemyManagerComponent 职责,现在只管“敌人相关”:
	- 敌人刷怪节奏
	- 敌人列表缓存与计数
	- 玩家引用与 enemy.SetTarget(...)
- 新增嵌套类 SimulationWorld.Presentation,专门消费 EnemySimData 并回写 position/rotation
- 新增嵌套类 SimulationWorld.EntitySync 负责“Simulation 同步”:
	- 监听 ShowEntitySuccess/HideEntityComplete
	- 同步 Enemy/Drop/Projectile 到 SimulationWorld
	- 敌人 SimData 构建、Pickup/Projectile 占位数据构建
This commit is contained in:
SepComet
2026-02-20 20:41:22 +08:00
parent 6494ebc5fd
commit 31fe7a4d61
16 changed files with 339 additions and 98 deletions
@@ -1,4 +1,4 @@
//------------------------------------------------------------
//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
@@ -46,7 +46,11 @@ public partial class GameEntry : MonoBehaviour
EnemyManager = UnityGameFramework.Runtime.GameEntry.GetComponent<EnemyManagerComponent>();
SimulationWorld = UnityGameFramework.Runtime.GameEntry.GetComponent<SimulationWorld>();
if (SimulationWorld == null && Base != null)
{
SimulationWorld = Base.gameObject.AddComponent<SimulationWorld>();
}
SpriteCache = UnityGameFramework.Runtime.GameEntry.GetComponent<SpriteCacheComponent>();
UIRouter = UnityGameFramework.Runtime.GameEntry.GetComponent<UIRouterComponent>();
}
}
}