feat(editor): 敌人/Boss 放置脚手架绑定 EnemyBase._bodyCollider(身体几何唯一权威)

This commit is contained in:
2026-07-27 13:17:38 +08:00
parent 33a52c4531
commit 7cba58919f
@@ -317,6 +317,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
@@ -369,7 +370,7 @@ namespace BaseGames.Editor
rb.interpolation = RigidbodyInterpolation2D.Interpolate; rb.interpolation = RigidbodyInterpolation2D.Interpolate;
Vector2 size = SpriteSizeOr(defaultSprite, new Vector2(1.5f, 2.5f)); Vector2 size = SpriteSizeOr(defaultSprite, new Vector2(1.5f, 2.5f));
CreateBodyCollider(go, bodyCollider, size); Collider2D body = CreateBodyCollider(go, bodyCollider, size);
GetOrAddComponent<Animator>(go); GetOrAddComponent<Animator>(go);
SpriteRenderer sr = SetupSpriteRenderer(go); SpriteRenderer sr = SetupSpriteRenderer(go);
if (defaultSprite != null) sr.sprite = defaultSprite; if (defaultSprite != null) sr.sprite = defaultSprite;
@@ -383,6 +384,7 @@ namespace BaseGames.Editor
// References // References
AssignReference(bossBase, "_stats", bossStats, report); AssignReference(bossBase, "_stats", bossStats, report);
AssignReference(bossBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
// DamageSourceSO // DamageSourceSO
Object dmgSrc = FindFirstAsset("CMB_DS_BossBody", "CMB_DS_EnemyBody", "DS_BossBody"); Object dmgSrc = FindFirstAsset("CMB_DS_BossBody", "CMB_DS_EnemyBody", "DS_BossBody");
@@ -466,6 +468,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -569,6 +572,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -660,6 +664,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -777,6 +782,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_feedback", feedback, report); AssignReference(enemyBase, "_feedback", feedback, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -890,6 +896,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -999,6 +1006,7 @@ namespace BaseGames.Editor
AssignReference(enemyBase, "_movement", movement, report); AssignReference(enemyBase, "_movement", movement, report);
AssignReference(enemyBase, "_animancer", animancer, report); AssignReference(enemyBase, "_animancer", animancer, report);
AssignReference(enemyBase, "_hurtBox", hurtBox, report); AssignReference(enemyBase, "_hurtBox", hurtBox, report);
AssignReference(enemyBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied"); AssignAsset(enemyBase, "_onEnemyDied", report, false, "EVT_EnemyDied");
AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(enemyBase, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned");
AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged"); AssignAsset(enemyStats, "_onDifficultyChanged", report, false, "EVT_DifficultyChanged");
@@ -1108,6 +1116,7 @@ namespace BaseGames.Editor
AssignReference(bossBase, "_animancer", animancer, report); AssignReference(bossBase, "_animancer", animancer, report);
AssignReference(bossBase, "_feedback", feedback, report); AssignReference(bossBase, "_feedback", feedback, report);
AssignReference(bossBase, "_hurtBox", hurtBox, report); AssignReference(bossBase, "_hurtBox", hurtBox, report);
AssignReference(bossBase, "_bodyCollider", body, report); // 身体几何唯一权威(EnemyBase.Body
AssignReference(skillExec, "_animancer", animancer, report); AssignReference(skillExec, "_animancer", animancer, report);
// 浮空 / 击落 / 弹体发射点接线(计划) // 浮空 / 击落 / 弹体发射点接线(计划)