Unity 6.3
0 онлайн 2 гостей 3 в системе
Вход

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,.