敵キャラのマスターデータを作る
EnemyDataスクリプトを作って、GameManagerにアタッチします。
(GameManagerをプレハブにしているときは、プレハブのほうにアタッチします。)
EnemyDataスクリプトには2つのクラスを作ります。
1つはスクリプトを作ったときに自動で作成されるMonoBehaviourを継承しているEnemyDataクラスです。
もう1つはMonoBehaviorを継承しないEnemyParamsクラスです。
EnemyData.cs
public class EnemyData : MonoBehaviour { public EnemyParams[] enemyList; } [System.Serializable] public class EnemyParams { public string ID; public Sprite sprite; }
EnemyParamsにはSerializable属性を付けることでインスペクターから編集できるようになります。
とりあえず敵キャラを3つ作るので、GameManagerのインスペクターから配列の要素を3つ用意します。
敵キャラには特徴を持たせず、基本情報はIDと画像だけです。
ScriptableObjectファイルはプロジェクトにDatasというフォルダを作ってEnemyMasterDataという名前にして作ります。
EnemyMasterDataのインスペクターから敵キャラのデータを入力できるので、とりあえず3種類ほどの敵キャラを入力してみます。
ちなみにこんなやつらです。
マスターデータを管理する
GameManagerにEnemyData型の変数を作ります。
EnemyDataはGameManagerオブジェクトにアタッチしてあるので、ちょっとややこしいですがGameManagerオブジェクトをGameManagerにアウトレット接続します。
(もちろんGetComponetメソッドを使ってもいいです)
GameManager.cs
public EnemyData enemyData;