Unityはコンポーネントのpublicなフィールドをインスペクタに表示してくれます。
しかし「設計的にはprivateにしたい。だけれどインスペクタで値を調整したい」という場面があります。
(フィールドはあまりpublicにしたくないものですし...)
そんな時は[SerializeField]属性
を使います。
インスペクタに表示したいフィールドに[SerializeField]属性
を指定すると表示されるようになります。
またクラスの場合は、クラスの定義に[System.Serializable]属性
を指定すると、インスペクタに表示されるようになります(クラスのフィールドに[SerializeField]属性
を指定する必要もあり)。
Hoge.cs
using UnityEngine;
using System.Collections;
public class Hoge : MonoBehaviour
{
[SerializeField]
float parameter;
[SerializeField]
Piyo piyo;
[System.Serializable]
class Piyo
{
[SerializeField]
float param;
}
}