列挙型(Enum)の使い方
列挙型(Enum)は定数として利用する値に使用します。
例えば複数の状態をもつキャラクターがいて、現在のその複数の状態の中のどの状態にいるか、などを表す際に便利です。
// Enumを定義
public enum StateType
{
PLAY,
PAUSE,
STOP
}
// enumをprivateの変数として使用
private StateType stateType;
構造体をUnityエディタ上で編集できるようにする
[System.Serializable]
を利用してクラスを作ると、インスペクタから編集ができるようになります。
共通の値を持ったクラスを複数並べて、それぞれ違う状態を表現する際などに便利です。
public StageInfo[] stageInfos;
[System.Serializable]
public class StageInfo
{
[SerializeField] public int id;
[SerializeField] public string sceneName;
[SerializeField] public string stageName;
[SerializeField] [TextArea(2, 5)] public string stageDescription;
}
外部からの見え方の違いによる宣言方法の違い
インスペクタから編集が可能で別のクラスからも変更が可能な値にしたい
| |
---|
インスペクタから | ○ |
外部からの参照 | ○ |
外部からの変更 | ○ |
インスペクタから編集が可能だけど別のクラスからは変更できない値にしたい
| |
---|
インスペクタから | ○ |
外部からの参照 | ○ |
外部からの変更 | × |
[SerializeField] int score = 0;
インスペクタからは見えないけど、外から参照はでき、かつ変更は内部でしかできない値にしたい
| |
---|
インスペクタから | × |
外部からの参照 | ○ |
外部からの変更 | × |
private float score;
public float Score
{
get { return score; }
private set { score = value; }
}
インスペクタから調整するべきではない変数で、かつ外部から取得・変更はしたい
| |
---|
インスペクタから | × |
外部からの参照 | ○ |
外部からの変更 | ○ |
[HideInInspector] public float score;