Property Drawer
公式サイト:
Property Drawer | Unity マニュアル [公式]
導入
参考:
自分だけの Property Drawer を作ろう! – Qiita
Property Drawer が思ったより便利だった – Qiita
Property Drawerで独自の属性をもつメンバーの外観を変える | Unity の使い方
使い方
using UnityEditor;
[CustomPropertyDrawer(typeof(ExampleClass))]
public class ExampleClassDrawer : PropertyDrawer
{
public override void OnGUI(
Rect position, SerializedProperty property, GUIContent label)
{
// ...
}
}
Code language: C# (cs)
注意事項
- Property Drawer では、パフォーマンス上の理由で
EditorGUILayout
関数は使用できない。EditorGUI
関数を使用して実装する。
ドキュメント:
Property Drawer | Unity マニュアル [公式]
EditorGUI.BeginProperty | Unity スクリプトリファレンス [公式]
EditorGUI.EndProperty | Unity スクリプトリファレンス [公式]
参考:
非 Mono Behaviour のインスペクタ表示をカスタムする | LIGHT11
インスペクタで独自 UI を使う/Property Drawer の下準備 | いんでぃーづ
Property Drawer の OnGUI の書き方 | いんでぃーづ
Property Drawer で変更した変数の保存 | いんでぃーづ
Custom inspector for nested struct inside class with visibility switch – Unity Forum
Scriptable Object resetting Array of Property Drawer to length of zero – Stack Overflow
高さを調節する (GetPropertyHeight)
参考:
Property Drawer on Array elements with different heights? – Unity Forum
overlaps with other components and ‘Add Component’ button – Unity Answers
Property Attribute
動画:
Property Attributes #1 (Otter Knight)
Property Attributes #2 (Otter Knight)
参考:
Property Drawer によるフィールドのカスタマイズ | murnana
Custom Property Drawer で型指定のカスタムプロパティを作成する | MR が楽しい
コンポーネントを設定したフィールドを非表示にする | テラシュールブログ
Inspector に Get Component In Children を行うボタンを追加する | うにてぃブログ
Draw Default GUI
参考:
Property Drawer でデフォルトの GUI を描画する | LIGHT11
Drawing default Property Drawer in a Custom Property Drawer – Unity Forum
Draw default property types in Custom Property Drawer – Unity Answers
配列 (Array)
参考:
ScriptableObject resetting array of Property Drawer to length of zero – Stack Overflow
Reordable List
参考:
Reorderable List と Property Drawer を組み合わせて使う | GREE Engineering
オブジェクト参照
ドキュメント:
SerializedProperty.objectReferenceValue | Unity スクリプトリファレンス [公式]
参考:
Property Drawer for objectRef – Unity Forum
Trouble setting the object reference in a property drawer – Unity Answers
シーンを参照する
コード:
A Reliable, User-Friendly Way to Reference Scene Assets – GitHub Gist
参考:
How to link Scenes in the Inspector – Unity Forum
GetPropertyInstance
参考:
Getting a reference to the property and to its owner behaviour? – Game Development Stack Exchange
競合
参考:
複数のカスタム Property Attribute を作ると Property Drawer が競合する問題とその対応策 | LIGHT11
型を判定する
参考:
How do I get the child type in a Property Drawer of parent type – Unity Forum
DropAreaGUI
参考:
override drag-and-drop implementation on list / array types – Stack Overflow
Serialized Property
ドキュメント:
SerializedProperty | Unity スクリプトリファレンス [公式]
SerializedPropertyType | Unity スクリプトリファレンス [公式]
EditorGUI
ドキュメント:
EditorGUI | Unity スクリプトリファレンス [Official]
リファレンス
UnityEditor.PropertyDrawer | Unity スクリプトリファレンス [公式]
チュートリアル
Introduction – Property Drawers / Customize Your Inspector (Jason Weimann)
Property Drawer Value Side By Side (Kasper Dev)
Property Drawers (Otter Knight)
Improve Your Workflow with Custom Property Drawers & UI Toolkit (Llam Academy)
Autohook
動画:
コード:
AutohookAttribute.cs (Lotte) – GitHub Gist
Editor Extension Methods
コード:
EditorExtensionMethods.cs (Lotte) – GitHub Gist
Filter File Extension Drawer
コード:
特定の種類/拡張子のファイルだけを設定したい (hiyorin) – GitHub Gist
Property Drawer Collection
**OBSOLETE**
動画:
入手:
Property Drawer Collection | Unity Asset Store [Official]
フォーラム:
Property Drawer Collection | Unity Forum
Disappear Attached Field
コード:
DisappearAttachedFieldAttribute.cs (tsubaki) – GitHub Gist
参考:
コンポーネントを設定したフィールドを非表示にする | テラシュールブログ
Layer Mask Drawer
コード:
Enum Flags / Masks
フォーラム:
Property Drawer for Enum Flags / Masks – Unity Forum
Folder Attribute
リポジトリ:
Eldoir/FolderAttribute: Now You Can Reference Folders into Inspector – GitHub
参考: