Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


PropertyField

Use this to make a field for a SerializedProperty in the Editor.
Read time 3 minutesLast updated 6 days ago

Definition

  • Type: Method
  • Namespace: UnityEditor
  • Assembly: UnityEditor

PropertyField(Rect, SerializedProperty, bool)

Use this to make a field for a SerializedProperty in the Editor.
public static bool PropertyField(Rect position, SerializedProperty property, bool includeChildren)

Parameters

position

Rectangle on the screen to use for the property field.

The SerializedProperty to make a field for.

includeChildren

If true the property including children is drawn; otherwise only the control itself (such as only a foldout but nothing below it).

Returns

Type

Description

boolTrue if the property has children and is expanded and includeChildren was set to false; otherwise false.

Remarks

Additional Resources: SerializedProperty, SerializedObject.

Examples

//Attach a script like this to the GameObject you would like to have a custom Editor window.using UnityEngine;public class MyScript : MonoBehaviour{ public int myInt = 90;}
//Create a folder and name it “Editor” and place this second script within it. To do this right click within the Assets directory and go to Create>Folder//Ensure you insert your first script’s name as a parameter in the CustomEditor e.g. [CustomEditor(typeof(MyScript))]using UnityEngine;using UnityEditor;// Custom Editor using SerializedProperties.// Make sure to put the name of the script on your GameObject in here[CustomEditor(typeof(MyScript))]// Automatic handling of multi-object editing, undo, and Prefab overrides.[CanEditMultipleObjects]public class EditorGUIPropertyField : Editor{ SerializedProperty m_IntProperty; void OnEnable() { // Fetch the objects from the MyScript script to display in the inspector m_IntProperty = serializedObject.FindProperty("myInt"); } public override void OnInspectorGUI() { //The variables and GameObject from the GameObject script are displayed in the Inspector and have the appropriate label EditorGUI.PropertyField(new Rect(0, 300, 500, 30), m_IntProperty, new GUIContent("Int : ")); // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties(); }}

PropertyField(Rect, SerializedProperty, GUIContent, bool)

Use this to make a field for a SerializedProperty in the Editor.
public static bool PropertyField(Rect position, SerializedProperty property, GUIContent label, bool includeChildren)

Parameters

position

Rectangle on the screen to use for the property field.

The SerializedProperty to make a field for.

Optional label to use. If not specified the label of the property itself is used. Use GUIContent.none to not display a label at all.

includeChildren

If true the property including children is drawn; otherwise only the control itself (such as only a foldout but nothing below it).

Returns

Type

Description

boolTrue if the property has children and is expanded and includeChildren was set to false; otherwise false.

Remarks

Additional Resources: SerializedProperty, SerializedObject.

Examples

//Attach a script like this to the GameObject you would like to have a custom Editor window.using UnityEngine;public class MyScript : MonoBehaviour{ public int myInt = 90;}
//Create a folder and name it “Editor” and place this second script within it. To do this right click within the Assets directory and go to Create>Folder//Ensure you insert your first script’s name as a parameter in the CustomEditor e.g. [CustomEditor(typeof(MyScript))]using UnityEngine;using UnityEditor;// Custom Editor using SerializedProperties.// Make sure to put the name of the script on your GameObject in here[CustomEditor(typeof(MyScript))]// Automatic handling of multi-object editing, undo, and Prefab overrides.[CanEditMultipleObjects]public class EditorGUIPropertyField : Editor{ SerializedProperty m_IntProperty; void OnEnable() { // Fetch the objects from the MyScript script to display in the inspector m_IntProperty = serializedObject.FindProperty("myInt"); } public override void OnInspectorGUI() { //The variables and GameObject from the GameObject script are displayed in the Inspector and have the appropriate label EditorGUI.PropertyField(new Rect(0, 300, 500, 30), m_IntProperty, new GUIContent("Int : ")); // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties(); }}