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

PropertyScope

класс в UnityEditor

Описание

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

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

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

using UnityEngine;
using UnityEditor;

public class ExampleClass : MonoBehaviour { // A slider function that takes a SerializedProperty void Slider(Rect position, SerializedProperty prop, float leftValue, float rightValue, GUIContent label) { using (var scope = new EditorGUI.PropertyScope(position, label, prop)) { label = scope.content; EditorGUI.BeginChangeCheck(); var newValue = EditorGUI.Slider(position, label, prop.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()) prop.floatValue = newValue; } } }

Дополнительные ресурсы: ,BeginProperty,.

Свойства

Свойство Описание
contentФактическая метка, используемая для управления.

Конструкторы

Конструктор Описание
EditorGUI.PropertyScopeСоздайте новое PropertyScope и начните соответствующее свойство.