Alchemy/docs/articles/ja/serialize-reference.md
2024-02-19 17:06:25 +09:00

1.1 KiB

SerializeReference

AlchemyはUnityの[SerializeReference]に対応しています。[SerializeReference]属性を付加することで、インターフェースや抽象クラスをInspector上で編集できるようになります。

using System;
using UnityEngine;

public interface IExample { }

[Serializable]
public sealed class ExampleA : IExample
{
    public float alpha;
}

[Serializable]
public sealed class ExampleB : IExample
{
    public Vector3 beta;
}

[Serializable]
public sealed class ExampleC : IExample
{
    public GameObject gamma;
}

public class SerializeReferenceExample : MonoBehaviour
{
    [SerializeReference] public IExample example;
    [SerializeReference] public IExample[] exampleArray;
}

img

インターフェース・抽象クラスは上のように表示され、ドロップダウンから子クラスを選択して生成することができます。

SerializeReferenceのシリアル化についてはUnityの公式マニュアルを参照してください。