using UnityEngine; using UnityEditor; namespace Jovian.Utilities.Editor { [CustomPropertyDrawer(typeof(CustomRenderQueueMaterialList.MaterialRenderQueue))] public class CustomRenderQueueMaterialListPropertyDrawer : PropertyDrawer { private const float RENDERQUEUE_PROPERTY_WIDTH = 45f; private const float GUI_PADDING = 2f; public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; var materialRect = new Rect(position.x, position.y, position.width - RENDERQUEUE_PROPERTY_WIDTH, position.height); var renderQueueRect = new Rect(materialRect.xMax + GUI_PADDING, position.y, RENDERQUEUE_PROPERTY_WIDTH - GUI_PADDING, position.height); EditorGUI.PropertyField(materialRect, property.FindPropertyRelative("material"), new GUIContent(string.Empty, "Material")); EditorGUI.PropertyField(renderQueueRect, property.FindPropertyRelative("renderQueue"), new GUIContent(string.Empty, "RenderQueue")); EditorGUI.indentLevel = indent; EditorGUI.EndProperty(); } } }