【Unity】RPGを作るチュートリアルその103 レベルアップ時に魔法を覚える処理の実装

【Unity】RPGを作るチュートリアルその103 レベルアップ時に魔法を覚える処理の実装

シンプルなRPGをUnityで作るチュートリアルシリーズの103回目です。

第102回ではマップに入った時に自動的に実行されるイベントの機能を実装しました。

今回はレベルアップ時に魔法を覚える処理を入れてなかったので、その部分を実装していきます。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。

 

チュートリアルの一覧

このシリーズ全体の一覧は以下のページにまとめています。

 

前回の内容

前回はマップに入った時に自動的に実行されるイベントの機能を実装しました。

 

レベルアップ時に魔法を覚える処理

前回の動作確認を行っていた際、フィールドでスライムを倒してレベルアップした時に、本来であればレベル2で覚えるはずの回復魔法を覚えていないことに気づきました。よくよくコードを見てみると、レベルアップの際に、覚えている魔法のリストにIDを追加する処理がなかったので、今回修正しておきたいと思います。

この後の作業としては、ゲーム内のイベントを本番さながらに配置していくので、その確認作業を行なっていく上でちゃんと魔法を使えるようにしておくと楽になるかと思います。

実装方法としては、「CharacterStatusManager」に魔法を習得するメソッドを追加し、戦闘結果を確認する「BattleResultManager」のクラスでそのメソッドを呼び出します。

 

CharacterStatusManagerの変更

上で触れたように、「CharacterStatusManager」では魔法を習得するメソッドを追加します。キャラクターが現在覚えている魔法の一覧は魔法IDのリストで保持しているので、今のレベルで覚えるはずの魔法ID一覧と比較して、まだ覚えていないものがあれば習得するようにします。

指定したレベルで習得可能な魔法一覧を取得する機能は「CharacterDataManager」の方に作ってあるので、その処理を呼び出して確認対象にします。foreach文によるループで、習得済みの魔法一覧に含まれているかどうか確認し、なければ追加しています。

 

BattleResultManagerの変更

「BattleResultManager」では、先ほど作成した魔法習得の処理を呼び出すようにします。

WinMessageProcess()のコルーチンではレベルアップの処理も行なっているので、そのタイミングで「CharacterStatusManager」に追加したLearnMagic()のメソッドを呼び出しています。

 

動作確認

スクリプトファイルを保存したら動作を確認してみます。ゲームを開始したらフィールドに出て、スライムと戦闘を行い、レベルアップさせます。もし「CharacterStatusSetter」でレベルの初期値を1以外にしている場合は、1に設定してからご確認ください。

レベル2になった際に、メニューの魔法画面で「ヒール」が表示されていることを確認しましょう。

魔法の習得を確認
魔法の習得を確認

 

今回のブランチ

 

まとめ

今回はレベルアップ時に魔法を覚える処理を実装しました。ゲームの各部分が繋がってくると今まで気づいていなかった部分にも気づけるようになるので、開発後半は見た目の進捗が遅くなるのが常ですね(涙目)

次回はゲーム内で使用するイベントの実装を進めていきます。各マップを繋ぐマップ移動のイベントを実装していきましょう。

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!