Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

PropertyScope

class in UnityEditor

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство

Описание

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

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

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


        
class ExampleClass {
  	// 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;
		}
	}
}

See Also: BeginProperty.

Переменные

contentThe actual label to use for the control.

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

EditorGUI.PropertyScopeCreate a new PropertyScope and begin the corresponding property.