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

MaterialEditor.RangeProperty

Объявление

public float RangeProperty(MaterialProperty prop, string label);

public float RangeProperty(Rect position, MaterialProperty prop, string label);

Параметры

label Этикетка для свойства.
prop Редактируемое свойство.
position Положение и размер ползунка диапазона.

Описание

Нарисуйте ползунок диапазона для свойства шейдера диапазона.

Чтобы создать пользовательский редактор материалов, сначала необходимо создать класс пользовательского редактора и сохранить его в папке Assets/Editor, а затем указать имя класса в шейдере. Например:

CustomEditor "MaterialRangePropertyExample"

Вот пример, показывающий ползунок Range, влияющий на свойство Glossiness шейдера:

using UnityEngine; using UnityEditor; public class MaterialRangePropertyExample : MaterialEditor { public override void OnInspectorGUI( ) { serializedObject.Update( ); SerializedProperty matShader = serializedObject.FindProperty( "m_Shader" ); if( !isVisible ) return; Material mat = target as Material; MaterialProperty Glossiness = GetMaterialProperty( new Object[] { mat }, "_Glossiness" ); if( Glossiness == null ) return; EditorGUI.BeginChangeCheck( ); RangeProperty( Glossiness, "Glossiness" ); if( EditorGUI.EndChangeCheck( ) ) PropertiesChanged( ); } }

Вот аналогичный пример использования параметра Rect для позиционирования и изменения размера ползунка на панели редактора пользовательских материалов:

using UnityEngine; using UnityEditor; public class MaterialRangePropertyWithRectExample : MaterialEditor { public override void OnInspectorGUI( ) { serializedObject.Update( ); SerializedProperty matShader = serializedObject.FindProperty( "m_Shader" ); if( !isVisible ) return; Material mat = target as Material; MaterialProperty Glossiness = GetMaterialProperty( new Object[] { mat }, "_Glossiness" ); if( Glossiness == null ) return; EditorGUI.BeginChangeCheck( ); RangeProperty( new Rect( 20, 60, 300, 20 ), Glossiness, "Glossiness" ); if( EditorGUI.EndChangeCheck( ) ) PropertiesChanged( ); } }

Вот как выглядит панель редактора примера:

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