【Unity】RPGを作るチュートリアルその32 キャラクターの定義データの管理クラスを実装

【Unity】RPGを作るチュートリアルその32 キャラクターの定義データの管理クラスを実装

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

第31回では魔法の定義データの管理クラスを追加しました。

今回は引き続き定義データの管理クラスとして、キャラクターの定義データの管理クラスを作成していきましょう。キャラクター自体の定義データに加えて、経験値表やパラメータ表に関しても同じクラスで管理していきたいと思います。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

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

 

チュートリアルの一覧

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

 

前回の内容

前回は魔法の定義データの管理クラスを追加しました。

 

キャラクターの定義データを管理

キャラクターの定義データに関しても、アイテムデータ、敵キャラクターのデータの管理クラスと同じような構成で作っていきます。キャラクターに関する定義データとしては、

  • キャラクターの定義データ
  • 経験値表の定義データ
  • パラメータ表の定義データ

の3種類がありますが、これらを同じクラスで管理していきたいと思います。

それぞれのデータについて、

  • 定義データのロード
  • データの取得機能

を共通で用意して、キャラクターの定義データに関しては必要なデータを取得できるように、

  • キャラクターの名前
  • 覚える魔法の一覧
  • 現在のレベルで習得できる魔法の一覧

を返すメソッドも追加したいと思います。キャラクターに関する情報は取得する機会が多く、目的に応じたメソッドもこの管理クラスに入れておくと便利そうです。

 

キャラクターの定義データを管理するクラスの実装

Projectウィンドウの「Assets/Scripts」のフォルダにて、空のスクリプトファイルを作成します。名前は [CharacterDataManager] にしました。

スクリプトファイルの作成
スクリプトファイルの作成

 

作成した「CharacterDataManager」の中身は以下のように記載しました。

フィールドとしては、それぞれの定義データをリストとして持つものを用意しています。

経験値表に関しては、仕様として1つの経験値表を持つ、と決めているので、リスト内の先頭の要素を返すメソッドを用意しています。

パラメータ表に関してはIDで指定したキャラクターのものを返すようにしています。

「GetCharacterName()」ではキャラクターの名前を返し、「GetCharacterMagicList()」ではIDで指定したキャラクターの覚える魔法の一覧を返し、「GetLearnableMagic()」ではキャラクターがそのレベルで覚えている魔法の一覧を返します。キャラクターの定義データを返すだけではなく、使用頻度が高そうな情報に関してはこのクラスで加工して取得できるようにしています。

スクリプトを保存してコンパイルエラーがなければ今回は完了です。

 

今回のブランチ

 

まとめ

今回はキャラクターの定義データの管理クラスを作成しました。キャラクターに関しては名前の表示や魔法の情報など、参照したい情報も多いので、管理クラスから必要なデータを直で取得できるようにしています。

次回は便利クラスとして、装備品によるパラメータ補正の値を計算するクラスを追加したいと思います。このクラスを使って、キャラクター全体の管理クラスでパラメータを計算できるようにしていきましょう。

     

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

CTA-IMAGE

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


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


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