mirror of
https://github.com/AnnulusGames/Alchemy.git
synced 2025-01-23 00:38:23 -05:00
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# SerializeReference
|
|
|
|
AlchemyはUnityの`[SerializeReference]`に対応しています。`[SerializeReference]`属性を付加することで、インターフェースや抽象クラスをInspector上で編集できるようになります。
|
|
|
|
```cs
|
|
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](../../images/img-serialize-reference.png)
|
|
|
|
インターフェース・抽象クラスは上のように表示され、ドロップダウンから子クラスを選択して生成することができます。
|
|
|
|
SerializeReferenceのシリアル化については[Unityの公式マニュアル](https://docs.unity3d.com/ja/2020.3/ScriptReference/SerializeReference.html)を参照してください。 |