ふりかえり
前回は、スライム以外にもゴブリン・サル・ネズミなどのモンスターを追加し、バトルにバリエーションが生まれました!
ボスを実装!
今回は、ステージの最後に出現する「ボス」モンスターを実装して、バトルに緊張感と達成感を加えていきます!
💡ボスの仕様
- ステージごとに10体の敵を倒すと次のステージへ進行
- このうち**10体目(最後の1体)**をボスとして扱う
- ボスは以下のように強化されます:
- 画像のスケール:1.5倍
- HP・攻撃・防御・報酬(EXP・G):2倍
スクリプトの変更
StageManager.csに次にスポーンさせる敵がステージの最後の敵なのかを判定する関数を追加。
// ステージの最後の敵かどうかを判定 public bool IsLastEnemyInStage() { return monstersDefeatedInStage == monstersPerStage - 1; }
EnemyManager.csにボス強化ロジックを追加
- 敵のスプライト表示時に、最後の敵かどうかを確認
- 最後の敵であれば、画像スケールを1.5倍に変更
- 同時に、ステータス(HP, 攻撃力, 防御力, 報酬)もすべて2倍
if (enemyUIManager != null) { Debug.Log($"<color=cyan>EnemyUIManagerにスプライト '{currentEnemyType.enemySprite?.name}' の更新を依頼します。</color>"); enemyUIManager.UpdateEnemySprite(currentEnemyType.enemySprite); // 新しくスケール設定の処理を追加 Vector2 imageScale = currentEnemyType.imageScale; // ステージの最後の敵の場合はスケールを1.5倍にする if (stageManager != null && stageManager.IsLastEnemyInStage()) { imageScale *= 1.5f; Debug.Log("<color=yellow>ステージの最後の敵のため、スケールを1.5倍に強化しました!</color>"); } enemyUIManager.SetEnemyImageScale(imageScale); } // ステージの最後の敵の場合はステータスを2倍にする if (stageManager != null && stageManager.IsLastEnemyInStage()) { enemy.maxHP *= 2; enemy.currentHP = enemy.maxHP; enemy.attack *= 2; enemy.defense *= 2; enemy.expReward *= 2; enemy.goldReward *= 2; Debug.Log("<color=yellow>ステージの最後の敵のため、ステータスを2倍に強化しました!</color>"); Debug.Log($"強化後 - HP: {enemy.maxHP}, 攻撃力: {enemy.attack}, 防御力: {enemy.defense}"); }
ログにも明示的に「ボスとして強化された」ことを表示させています。
Unityで確認!
ゲームを起動してステージ1を進めてみると…
- 最後に登場する敵だけが一回り大きく表示
- ステータスも格段に高く、通常の敵とは一線を画す強さ!
- 「ボスが来たぞ!」という緊張感と演出効果がしっかり伝わります


まとめ
今回は、ボスモンスターの実装を行いました!
スケールアップした姿と、強化されたステータスにより、最後の1体がしっかりと「ボス」としてプレイヤーに印象づけられるようになりました!
今後、さらに演出や専用SEなどを加えると、もっと盛り上がりそうですね!
次回予告
次回は、バトル画面のUIを調整していきます!
見やすく、美しくすることでプレイ体験がグッと良くなりますよ!
お楽しみに!