UnityノンフィールドRPGの作り方10 C#で戦闘システムを作ろう ~BGM切り替え/ステータス更新処理/スキル処理を開発~ | Unity入門の森 ゲームの作り方

UnityノンフィールドRPGの作り方10 C#で戦闘システムを作ろう ~BGM切り替え/ステータス更新処理/スキル処理を開発~

Unity 初心者向けノンフィールドRPGの作り方 (スマホ化対応)

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

この記事はUnityノンフィールドRPGの作り方講座の第10回です。

前回はScriptableObjectを使ってマスターデータの作成と戦闘シーンへのオブジェクトの配置を行いました。

前回の記事:

Unity ノンフィールドRPGの作り方講座9 マスターデータの作成と戦闘シーンの背景構築
この記事はノンフィールドRPGの作り方講座の第9回です。前回はバトルシーンの設定とUIを作成しました。前回の記事:第9回ではマスターデータを作成し、敵キャラの表示やバトルシーンの背景を作成していきます。マスターデータの作成 敵キャラクターデ...

ですが、まだマスターデータの中身に基づいて敵キャラの画像が表示されているわけではありません。

第10回ではマスターデータに基づいて敵キャラを表示し、主人公や敵キャラのステータスウィンドウの情報を更新する処理、そしてスキル使用時の処理を実装していきます。

いよいよUnityとC#を用いてRPGの戦闘システムのメイン部分を構築です。

ですがその前にここで戦闘シーンに入ったときの音楽切り替え処理を設定しておきます。

【ゲームの作り方講座プレゼント中!】

バトルシーンで流す音楽を準備しよう

バトルシーンのBGM準備をします。

タイトルシーンやダンジョンシーンでのBGM処理と同じようにまずはAudioClipをアタッチするための変数を宣言します。そしてバトルシーンのBGMを再生するメソッドを追加していきます。

SoundManager.cs

AudioClipをアタッチする

SoundManagerオブジェクトにAudioClipをアタッチするのですが、SoundManagerオブジェクトはタイトルシーンにあるため、一度[Assets]→[Scenes]にある[Title]をダブルクリックしてタイトルシーンに戻ります。

※ シーンの保存を忘れないようにしましょう

ではタイトルシーンのHierarchyビューにあるSoundManagerオブジェクトをクリックしてInspectorビューを表示します。

AssetStoreからインポートしたフォルダ[LUShvalleySound]→[LUShvalleySound_FantasyBGM_FreePackVol.01]→[LVSD-0006_03_annulus_loop]をドラッグアンドドロップします。

(↑この画面操作では最初にインスペクターのカギマークをクリックして画面固定を行ってからBGMデータをアタッチしています。終わったらカギマークを外しておきましょう)

まだこの段階ではバトル時のBGMは流れません。後ほどBattleDirector.csという戦闘管理用スクリプトを作成した際にSoundManagerのインスタンスに命令を送り再生処理を実装します。

GameManagerからEnemyDataを参照する

マスターデータであるEnemyDataをGameManagerから参照できるようにしておきます。

GameManager.cs

EnemyDataをアタッチする

タイトルシーンのHierarchyビューにあるGameManagerオブジェクトをクリックしてInspectorビューを表示します。

[Assets/Data/EnemyData]をアタッチします。

アタッチが終わったら[Assets/Scenes/Battle]をクリックして再びバトルシーンを開いておきましょう。

※ シーンの保存を忘れないようにしましょう

戦闘システムの処理を行うC#スクリプトとオブジェクトを構築

バトルシーン全体の処理を行うDirectorスクリプトを作成し、このスクリプトをアタッチするためのオブジェクトを作成します。

[Assets/Scripts]フォルダを選択して(もしくはScriptsフォルダ内で)右クリックし、[Create]→[Scripting]→[MonoBehaviour Script]をクリックします。スクリプトファイルの名前を「BattleDirector」とします。

Hierarchyビューを右クリックして、[Create Empty]をクリックして空のオブジェクトを作成します。オブジェクトの名前は「Director」とします。

HierarchyビューにあるDirectorオブジェクトを選択してInspectorビューを表示します。

一番下にある[Add Component]をクリックし、検索バーに”Battle”と入力します(”BattleDirector”まで入力しても可)。一覧から「Battle Director」をクリックしてアタッチします。

戦闘システムを管理するC#スクリプトBattleDirector.csを実装する

BattleDirectorクラスはバトルシーンを管理するクラスです。

ダンジョン探索シーンと同じくもしこのシーンから再生されてもタイトル画面から始まるようにしています。シングルトンを用いた初期化をタイトル画面で行うためです。

Updateメソッドを使用する予定がないためコメントアウトしておきます。削除しても良いのですが、今後演出などで使用する可能性があるので念のためコメントアウトしておきます。

BattleDirector.cs

以下の処理で構成されたBattleDirector.csを作成します。

続きを読む
このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

ここまででバトルシーンでの敵キャラの表示とUIの表示を実装しました。

次回からバトルシーンでスキルコマンドをタッチして主人公が行動する処理や敵キャラ行動、ターン進行を実装していきます。

次の記事:

ノンフィールドRPGの作り方講座11 ターン制戦闘システムを構築する/効果音の実装
この記事はノンフィールドRPGの作り方講座の第11回です。前回はバトルシーンでの敵キャラの表示やステータスウィンドウの表示を実装、そしてスキル使用時の処理を実装しました。前回の記事:第11回ではスキルボタンをタッチして主人公ターンと敵キャラ...

Unity ノンフィールドRPGの作り方講座に戻る>>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

タイトルとURLをコピーしました