EditorGUI.BeginProperty
Declaration
public static GUIContent BeginProperty(Rect totalPosition, GUIContent label, SerializedProperty property);Параметры
| Параметр | Описание |
|---|---|
| totalPosition | Прямоугольник на экране, используемый для контроля, включая маркировку, если это применимо. |
| метка | Необязательная метка перед слайдером. Используйте null, чтобы использовать имя из SerializedProperty. Используйте GUIContent.none, чтобы не отображать метку. |
| свойство | SerializedProperty для управления. |
Возвращаемое значение
GUIContent Фактическая метка, используемая для управления.
Описание
Создать оболочку свойства, полезную для того, чтобы обычные GUI элементы управления работали с SerializedProperty.
Большинство EditorGUI и EditorGUILayout GUI уже имеют перегрузки, которые работают с SerializedProperty. Однако для GUI контроллеров, которые не обрабатывают SerializedProperty, вы можете обернуть их внутри BeginProperty и EndProperty, как показано в примере ниже. Вы можете использовать это также для своих собственных пользовательских GUI контроллеров.
BeginProperty и EndProperty автоматически обрабатывают метки по умолчанию, жирный шрифт для переопределений Префаб, возвращаются к меню правого клика Префаб и устанавливают showMixedValue в true, если значения свойств отличаются при редактировании нескольких объектов.
using UnityEngine; using UnityEditor;
class Example : MonoBehaviour { // A slider function that takes a SerializedProperty void Slider(Rect position, SerializedProperty property, float leftValue, float rightValue, GUIContent label) { label = EditorGUI.BeginProperty(position, label, property);
EditorGUI.BeginChangeCheck(); var newValue = EditorGUI.Slider(position, label, property.floatValue, leftValue, rightValue); // Only assign the value back if it was actually changed by the user. // Otherwise a single value will be assigned to all objects when multi-object editing, // even when the user didn't touch the control. if (EditorGUI.EndChangeCheck()) { property.floatValue = newValue; } EditorGUI.EndProperty(); } }
Дополнительные ресурсы: ,EndProperty,.