/************************************************/ /* */ /* Copyright (c) 2018 - 2021 monitor1394 */ /* https://github.com/monitor1394 */ /* */ /************************************************/ using UnityEditor; using UnityEngine; namespace XChartsDemo { [CustomPropertyDrawer(typeof(ChartModule), true)] public class ChartModuleDrawer : PropertyDrawer { public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; var lastX = drawRect.x; var lastWid = drawRect.width; SerializedProperty m_Column = prop.FindPropertyRelative("m_Column"); SerializedProperty m_Name = prop.FindPropertyRelative("m_Name"); SerializedProperty m_SubName = prop.FindPropertyRelative("m_SubName"); SerializedProperty m_Title = prop.FindPropertyRelative("m_Title"); SerializedProperty m_Selected = prop.FindPropertyRelative("m_Selected"); SerializedProperty m_Panel = prop.FindPropertyRelative("m_Panel"); var fieldWid = EditorGUIUtility.currentViewWidth - 30 - 5 - 40 - 80 - 50 - 100 - 6 * 2; drawRect.width = 15; EditorGUI.PropertyField(drawRect, m_Selected, GUIContent.none); drawRect.x += 17; drawRect.width = 80; EditorGUI.PropertyField(drawRect, m_Name, GUIContent.none); drawRect.x += 82; drawRect.width = 50; EditorGUI.PropertyField(drawRect, m_SubName, GUIContent.none); drawRect.x += 52; drawRect.width = fieldWid; EditorGUI.PropertyField(drawRect, m_Title, GUIContent.none); drawRect.x += fieldWid + 2; drawRect.width = 100; EditorGUI.PropertyField(drawRect, m_Panel, GUIContent.none); drawRect.x += 102; drawRect.width = 40; EditorGUI.PropertyField(drawRect, m_Column, GUIContent.none); } public override float GetPropertyHeight(SerializedProperty prop, GUIContent label) { return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing; } } }