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

MaterialEditor.RangeProperty

Declaration

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

Параметры

Параметр Описание
метка Метка для свойства.
Проп Свойство для редактирования.
должность Положение и размер ползунка диапазона.

Описание

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

Чтобы создать собственный редактор материала, сначала объявите класс редактора и сохраните его в папке 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.