Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

EditorGUI.BeginProperty

Объявление

public static GUIContent BeginProperty(Rect totalPosition, GUIContent label, SerializedProperty property);

Параметры

totalPosition Прямоугольник на экране для использования в качестве элемента управления, включая метку, если применимо.
label Необязательный ярлык перед ползунком. Используйте null, чтобы использовать имя из SerializedProperty. Используйте GUIContent.none, чтобы не отображать метку.
property Объект SerializedProperty, используемый для элемента управления.

Возвращает

GUIContent Фактическая метка, используемая для элемента управления.

Описание

Создаёт оболочку свойства, удобную для обеспечения работы обычных элементов управления графического интерфейса с SerializedProperty.

Большинство элементов управления графическим интерфейсом EditorGUI и EditorGUILayout уже имеют перегрузки, которые работают с SerializedProperty. Однако для элементов управления с графическим интерфейсом, которые не обрабатывают SerializedProperty, вы можете обернуть их внутри BeginProperty и EndProperty, как показано в примере ниже. Вы также можете использовать это для своих собственных настраиваемых элементов управления графическим интерфейсом.

BeginProperty и EndProperty автоматически обрабатывают метки по умолчанию, жирный шрифт для переопределений Prefab, возвращаются к контекстному меню Prefab и устанавливают для showMixedValue значение true, если значения свойства отличается при редактировании нескольких объектов.

using UnityEngine; using UnityEditor; class Example : MonoBehaviour { // Функция ползунка, которая принимает 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); // Назначать значение обратно только в том случае, если оно действительно было изменено пользователем. // В противном случае при многообъектном редактировании всем объектам будет присвоено одно значение, // даже если пользователь не прикасался к элементу управления. if (EditorGUI.EndChangeCheck()) { property.floatValue = newValue; } EditorGUI.EndProperty(); } }

Смотрите так же: EndProperty.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3