ふりかえり
前回は、敵を倒したときにEXP(経験値)とG(お金)を獲得できるようにしました!
14歩目 レベルアップの実装!
今回はそのEXPを活用して、プレイヤーがレベルアップできる仕組みを実装していきます!
PlayerData.csの変更
まず、レベルアップに必要な経験値を管理するためのフィールドを追加します。
public int expToNextLevel;
PlayerManager.csの変更
次に、EXPの獲得→レベルアップ判定→ステータス上昇の流れを構築します。
public void GainRewards(int exp, int gold) { player.exp += exp; player.gold += gold; Debug.Log($"{player.name}は{exp}EXPと{gold}Gを獲得しました!"); // レベルアップを確認 CheckLevelUp(); } private void CheckLevelUp() { if (player.exp >= player.expToNextLevel) { LevelUp(); } } private void LevelUp() { player.level++; player.maxHP += 20; player.currentHP = player.maxHP; // 全回復 player.attack += 5; player.defense += 3; player.expToNextLevel += 10; // 次のレベルに必要なEXPを増加 player.exp = 0; Debug.Log($"{player.name}がレベルアップ! レベル{player.level}になりました!"); Debug.Log($"HP: {player.maxHP}, 攻撃力: {player.attack}, 防御力: {player.defense}"); }
Unityで確認!
Unityでゲームを起動し、スライムを倒してみましょう。
ログに以下のような表示が出れば、勇者のレベルアップが成功していることが確認できます!

ゲーム画面でもレベルアップが反映されているはずです!

まとめ
今回はレベルアップの仕組みを実装しました!
敵を倒して、経験値を集めて、レベルアップして強くなる——
まさにRPGの醍醐味ですね!
完成度がどんどん上がっていくにつれ、私もワクワクが止まりません!
次回予告
次回は、プレイヤーや敵に画像(スプライト)を設定して、ビジュアル面を強化していきたいと思います!お楽しみに!
コメント