マップ作成が行えたらいよいよオリジナルのユニットデータの作成を行いましょう。今回作るデータは敵味方いずれも同じデータを利用することが出来ます。まだマップ作成が出来ていない場合は先に済ませておくと良いでしょう
アセットデータを作成
ゲームで利用されるユニットのデータはスクリプタブルオブジェクトで作られたアセットを利用します。
既存のユニットデータを確認する
ユニットデータはAnogame.Simulation/Samples/UnitDatas以下に用意されています。スライムのデータである01Slimeのインスペクターを確認してみましょう。
フィールド | 説明・補足 |
---|---|
UnitName | ゲームで表示される名前 |
UnitIcon | 正方形の画像をセットしてください 100×100が基準ですが、大きい場合はPixelPerUnitでサイズ調整 |
HitPoint | HP |
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になっています。
実際に遊んで見る
セットが出来たら後は実際に遊んでみましょう。
わかりやすいのは、即ターン終了して、相手側用に設定しているユニットが動けば正常にセット出来ています。
コメント