本日はUnityの小ネタ枠です。
UnityのInspectorビューに自作のデータ形式(struct, class, record)を表示する方法についてです。
カスタム製のシリアル化
[System.Serializable]属性を利用することで自作のデータ形式をシリアル化することができます。
これにより、Unityがサポートしていない形式のデータをInspectorビュー上から確認・編集することができます。
docs.unity3d.com
docs.unity3d.com
サンプルスクリプト
以下の[System.Serializable]属性を設定した自作のデータ形式を用意しました。
・HumanEntity.cs
// カスタムクラスをシリアライズする [System.Serializable] public record HumanEntity { // 名前 public string Name; // 年齢 public int Age; }
カスタムクラスをプロパティで保持するMonoBehaviourを作成して動作を確認します。
・InspectorSerializeTest.cs
using UnityEngine; public class InspectorSerializeTest : MonoBehaviour { // カスタムクラス [SerializeField] HumanEntity _humanEntity; void Start() { _humanEntity = new HumanEntity{ Name = "太郎", Age = 20, }; } }
以下の通り、カスタムクラスの情報をInspectorビューから参照できるようになりました。