スクリプタブルオブジェクトでユニットデータを作成【シミュレーション】

マップ作成が行えたらいよいよオリジナルのユニットデータの作成を行いましょう。今回作るデータは敵味方いずれも同じデータを利用することが出来ます。まだマップ作成が出来ていない場合は先に済ませておくと良いでしょう

目次

アセットデータを作成

ゲームで利用されるユニットのデータはスクリプタブルオブジェクトで作られたアセットを利用します。

既存のユニットデータを確認する

ユニットデータはAnogame.Simulation/Samples/UnitDatas以下に用意されています。スライムのデータである01Slimeのインスペクターを確認してみましょう。

フィールド説明・補足
UnitNameゲームで表示される名前
UnitIcon正方形の画像をセットしてください
100×100が基準ですが、大きい場合はPixelPerUnitでサイズ調整
HitPointHP
Attack攻撃力
Defence防御力
Attack Range攻撃の射程範囲
Movement Pointいどうで動くことが出来る量
Action Point攻撃などのを行える回数
Flyingチェックを入れると飛行ユニットとして扱われます

データを作る

では実際にデータを作ってみましょう。

プロジェクトビューのCreateメニューから作成を行います。Create>ScriptableObject>UnitDataから作成することが出来ます。

アセットが作られたらわかりやすいように名前を変えたり、必要なデータを設定しましょう。

補足:データの拡張を行いたい場合

現在のスクリプタブルオブジェクトのデータだけではでは満足出来ない!という場合はUnitDataクラスを変更することで拡張可能です。

下記スクリプトはUnitDataになります。スクリプタブルオブジェクトのアセットを作るにはたったこれだけのコードでOK。どのへんイジったらCreateメニューに出てくるのかなーとかソース見ながら試していただけると良い勉強になるかと!

[CreateAssetMenu(menuName ="ScriptableObject/UnitData")]
public class UnitData : ScriptableObject
{
	public string UnitName;
	public Sprite UnitIcon;
	public int HitPoint;
	public int Attack;
	public int Defence;
	public int AttackRange;
	public int MovementPoint;
	public int ActionPoint;
	public bool Flying;
}

Unit用プレファブにセット

データと制御は別に作ると良い、MVCもそう言ってる!まぁそこまでキレイに作ってるわけでは無いですが、ゲームで動く処理とデータは別に分けておくと良いです。先程作ったUnitDataを利用してゲーム内で動くプレファブをセットアップしたいと思います。今回は敵軍にスライムちゃんを配置したいと思います。

プレファブをシーン内に配置

まずはシーン内にUnit用のプレファブを配置します。Unitのプレファブは「Assets/Anogame.Simulation/Prefab/PrefUnit」です。プレファブを見つけたらドラッグ&ドロップでシーン内に配置します。配置場所は敵キャラにしたいので、左側のユニット近くに配置すればOKです。このとき座標は曖昧でも大丈夫!開始時に地震に一番近い座標に自動でセットされます。

プレファブに設定を入れる

ドラッグアンドドロップで配置したユニットに設定を入れていきます。ヒエラルキーに追加したユニットがありますのでそれを選択してください。

続いてインスペクター上にある項目を2つ変更します。

  • PlayerNumber : 1
  • UnitData : 01Slime(もしくはセットしたいユニットのデータ)
スライム

ユニットデータを作っていない場合は01Slimeを指定することで私を敵軍に配置することが出来ますよ!

フェアリー

PlayerNumberがどのチーム(プレイヤー)に所属しているかの設定になります。ここでは自軍が0で、敵軍が1になっています。

インスペクターには他にも設定を変更できる箇所がありますが、スルーしてください。一部の変数は動作中に確認が行えるようにpublicもしくはSerializeFieldされています。

実際に遊んで見る

セットが出来たら後は実際に遊んでみましょう。

わかりやすいのは、即ターン終了して、相手側用に設定しているユニットが動けば正常にセット出来ています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次