public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { SerializedProperty m_Name = prop.FindPropertyRelative("m_Name"); SerializedProperty m_Max = prop.FindPropertyRelative("m_Max"); SerializedProperty m_Min = prop.FindPropertyRelative("m_Min"); SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle"); Rect drawRect = pos; float defaultLabelWidth = EditorGUIUtility.labelWidth; float defaultFieldWidth = EditorGUIUtility.fieldWidth; drawRect.height = EditorGUIUtility.singleLineHeight; int index = ChartEditorHelper.GetIndexFromPath(prop); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, prop, "Indicator " + index, m_Name, false); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop)) { ++EditorGUI.indentLevel; EditorGUI.PropertyField(drawRect, m_Name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Min); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Max); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_TextStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle); --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { InitProperty(prop); Rect drawRect = pos; float defaultLabelWidth = EditorGUIUtility.labelWidth; float defaultFieldWidth = EditorGUIUtility.fieldWidth; drawRect.height = EditorGUIUtility.singleLineHeight; int index = ChartEditorHelper.GetIndexFromPath(prop); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, prop, "Radar " + index, null, true); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop)) { ++EditorGUI.indentLevel; EditorGUIUtility.labelWidth = defaultLabelWidth; EditorGUIUtility.fieldWidth = defaultFieldWidth; EditorGUI.PropertyField(drawRect, m_Shape); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_PositionType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.LabelField(drawRect, "Center"); var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15; var tempWidth = (pos.width - startX + 35) / 2; var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height); var centerYRect = new Rect(centerXRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height); while (m_Center.arraySize < 2) { m_Center.InsertArrayElementAtIndex(m_Center.arraySize); } EditorGUI.PropertyField(centerXRect, m_Center.GetArrayElementAtIndex(0), GUIContent.none); EditorGUI.PropertyField(centerYRect, m_Center.GetArrayElementAtIndex(1), GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Radius); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitLine); drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine); EditorGUI.PropertyField(drawRect, m_SplitArea); drawRect.y += EditorGUI.GetPropertyHeight(m_SplitArea); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeFoldout(ref drawRect, ref m_IndicatorToggle, prop, "Indicators", m_Indicator, false); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_IndicatorJsonAreaToggle, ref m_IndicatorJsonAreaText, prop, pos.width, 20); drawRect.width = pos.width; drawRect.x = pos.x; if (ChartEditorHelper.IsToggle(m_IndicatorToggle, prop)) { EditorGUI.PropertyField(drawRect, m_IndicatorGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeList(ref drawRect, ref m_IndicatorSize, m_IndicatorList); } --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty m_Shape = prop.FindPropertyRelative("m_Shape"); SerializedProperty m_Center = prop.FindPropertyRelative("m_Center"); SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius"); SerializedProperty m_ShapeWidth = prop.FindPropertyRelative("m_ShapeWidth"); SerializedProperty m_Gap = prop.FindPropertyRelative("m_Gap"); SerializedProperty m_Smoothness = prop.FindPropertyRelative("m_Smoothness"); SerializedProperty m_AutoColor = prop.FindPropertyRelative("m_AutoColor"); SerializedProperty m_Color = prop.FindPropertyRelative("m_Color"); SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor"); int index = ChartEditorHelper.GetIndexFromPath(prop); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_VesselModuleToggle, "Vessel " + index, show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_VesselModuleToggle) { EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_Shape); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_ShapeWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Gap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); EditorGUI.PropertyField(drawRect, m_Radius); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BackgroundColor); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Color); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AutoColor); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Smoothness); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.indentLevel--; } }