シェアする

[Unity]よく使う属性Attribute[メモ]

属性Attributeとは

スクリプトのクラス、プロパティー、関数の前に記載する特別な動作指示。Inspectorの表示の拡張やエディタ、コンポーネント関連、通信時のRPCなんかで使う。

よく使う(使えそうな)属性Attributeたち

Inspector拡張系

SerializeField

[SerializeField]

private、protected フィールドを強制的にシリアライズしInspectorで操作可能にする。

NonSerializable

 [System.NonSerialized]

public フィールドの変数がシリアライズされないものとしてマーキングされる。

FormerlySerializedAs

[FormerlySerializedAs(“変更前の変数名”)]

Inspectorで操作した値を失わないようにフィールド名のリネームをしたい場合に使う。

TooltipAttribute

[Tooltip(“フィールドの説明”)]

Inspector上のフィールドにマウスカーソルを合わせるとツールチップのテキストが見れる。

HeaderAttribute

[Header(“Title”)]

インスペクターのフィールドにヘッダーを追加できる。

コンポーネント系

ContextMenu

[ContextMenu (“Method”)]

Inspectorの右上にある歯車マーク(コンポーネントのコンテキストメニュー)からメソッドを実行できる。実行したいメソッドの前に記述する。

RequireComponent

[RequireComponent(typeof(コンポーネント名))]

このスクリプトがアタッチされたゲームオブジェクトに必要なコンポーネントが自動的にそのゲームオブジェクトに加えられるようになる。

コンポーネントの追加とか、ゲームオブジェクトの操作をスクリプトでほとんど制御するときは便利そう。

エディタ系

AddComponentMenu

[AddComponentMenu(“BaseName/ScriptName”)]

Component->Scriptsメニューに項目を追加する代わりに、コンポーネントメニューに直で項目を追加することができる。あとInspectorのAddComponentボタンで追加するときのパスになる。

階層化もできるから整理に使えば少し便利になりそう。

CreateAssetMenuAttribute

[CreateAssetMenu]

Assets/Create サブメニューに自動的にリスト表示される ScriptableObject の派生型をを生成するメニューを追加できる。

参考

公式リファレンス

UnityのAttribute(属性)についてまとめてメモる。2015/0103

フォローする