Unity (2021.3.2f1)
はじめに
よく使うであろう各データ型がインスペクタで使えるかを検証し表にまとめました。
表の簡単な見方についてですが、
可否が×なのは使えなかったということです。
初期値というのはスクリプト側で初期化をせず自動で入るデフォルト値を指します。
基本型
データ型 | 可否 | 初期値 |
---|---|---|
int | ○ | 0 |
float | ○ | 0 |
double | ○ | 0 |
byte | ○ | 0 |
long | ○ | 0 |
char | ○ | 表示バグが発生する(必ず初期値入れた方がいいと思う) |
string | ○ | 空文字(Nullではない) |
配列
データ型 | 可否 | 初期値 |
---|---|---|
[ ] | ○ | 空※解説あり |
List | ○ | 空 |
Dictionary | × | |
Quue | × | |
Stack | × |
空の状態と要素の追加方法
空というのは下図のような状態です。
+を押して要素を追加するとこのように表示されます。
newは不要
スクリプト側の話になるのですが、実はnewする必要がありません。
public int[] ary/* = new int[6]*/; public List<int> list/* = new List<int>()*/;
これは結構謎です。内部でnewしてるってことなんですかね🤔
Dictionaryは使えません(まだ)
結構使いたい人多いはずですが現状対応されていないみたいですね。
今後に期待といったところでしょうか。
その他
データ型 | 可否 | 初期値 |
---|---|---|
enum | ○ | 0に対応したフラグ |
自作構造体 | ○ | 基本型と同様 |
自作クラス | ○ | 基本型と同様 |
Null許容型 | × |
enumの初期値
例えば下記のようなenumを定義した場合 0 に対応したフラグは A なのでAが選択された状態になっています。
public enum TestEnum { A, B, C, }
定義順の一番上が初期値ではなく、0に相当したフラグになるので以下の場合はBがデフォルトになります。
public enum TestEnum { A = -1, B, // 0 Aがインクリメントされた値になる C, // 1 }
Null許容値型は使えない
Null許容値型とは例えば int?
といったプリミティブ型だけどnullを代入できるやつです。
まぁ使う必要性がないですが Null許容値型はインスペクターで認識されませんでした。
構造体やクラスはSerializableが必要
例えばこの形式だと表示されません。
public struct TestStruct { public int hoge_1; public float hoge_2; } ~~~~~~~省略~~~~~~~~ public Hoge hoge;
Serializable
を属性として追加する必要があります。
[System.Serializable] // ←これいる public struct TestStruct
クラス(class)も同様です。