Unity:インスペクターでInterfaceを可視化する、SerializeReferenceの使い方(Inspector、神機能?、unity2019.3)
目次
はじめに
たっつー
こんにちは、のんびりエンジニアのたっつーです。
Twitter(@kingyo222)で Unity情報 を発信しているのでよければフォローしてください!
先日に、Unity 2019.3 の正式版がリリースされましたね。
そこで一番注目していた機能をさっそく使ってみます。
SerializeReferenceの使い方
使い方は簡単です。
インターフェスを定義して、特定のスクリプトのフィールドに宣言して「 SerializeReference 」を付けてやりましょう。
インターフェスの定義
インターフェスと、実装クラス3つを今回はサンプルで書いてみました。
- IData がインターフェース
- DataA が実装クラス1
- DataB が実装クラス2
- DataC が実装クラス3
interface IData
{
}
enum DataType
{
User,
Address,
Tel
}
class DataA : IData
{
public DataType type = DataType.User;
public int age;
public string firstName;
public string lastName;
}
class DataB : IData
{
public DataType type = DataType.Address;
public string zipCode;
public string address;
}
class DataC : IData
{
public DataType type = DataType.Tel;
public string tel;
}
SerializeReferenceを使う
次に、特定のスクリプトに
- IDataの宣言を行いましょう。
※ここではよくあるパターンでリスト型にしました。 - 上記宣言に「SerializeReference」のアトリビュートを付けましょう。
以下が使用例になります。
public class SampleObject : MonoBehaviour
{
[SerializeReference]
List<IData> list = new List<IData>();
void Start()
{
list.Add(new DataA() { age = 17, firstName = "unity", lastName = "taro" });
list.Add(new DataB() { zipCode = "111-1111", address ="unity japan" });
list.Add(new DataC() { tel = "2019.3" });
}
}
実行確認
これで準備は完了です、さっそく実行してみましょう。
こんな感じで、それぞれの実装クラス(DataA、DataB、DataC)が表示されたかと思います。
めっちゃ便利な機能ですね。
Unity2019.3の神機能でした。
その他にも便利機能があるので以下確認してみてください。
便利機能一覧
以下に、他にもある便利機能のリンクを載せますのでぜひご参照ください。- Unity オブジェクトにアイコンを設定して視認性をあげる
- Unity:Projectウィンドウの検索を使いこなす!
- Unity:Material(Shader) の設定一覧を表示する
- Unity:カメラの位置・回転を Sceneビュー の見た目に合わせる
- Unity:インスペクター(Inspector)で計算式が使える!
- Unity:オブジェクトをくっつけて配置する
- Unity:ヒエラルキに複数シーンで開発効率アップ!
- Unity:スクリプトから一時停止・停止・再生をする方法
- Unity:シーンビューの背景色を変更する
よければ、SNSにシェアをお願いします!