|
|
using UnityEngine;using UnityEditor;
namespace ARLocation{ [CustomPropertyDrawer(typeof(OverrideAltitudeData))] public class OverrideAltitudeDataDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property);
var initialRect = EditorGUI.IndentedRect(position); //position;
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; // EditorGUI.IndentedRect(position);
float height = 20.0f;
var boolRect = new Rect(position.x, position.y, 30, height); var altitudeRect = new Rect(position.x, position.y + 20, 180, height); var altitudeLabelRect = new Rect(initialRect.x, position.y + height, 50, height);
var altitudeModeRect = new Rect(position.x, position.y + (2 * height), 180, height); var altitudeModeLabelRect = new Rect(initialRect.x, position.y + (2 * height), 50, height);
EditorGUI.PropertyField(boolRect, property.FindPropertyRelative("OverrideAltitude"), GUIContent.none);
if (property.FindPropertyRelative("OverrideAltitude").boolValue) { var x = new GUIContent(); var y = new GUIContent(); x.text = "Altitude"; EditorGUI.PrefixLabel(altitudeLabelRect, x); // EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
EditorGUI.PropertyField(altitudeRect, property.FindPropertyRelative("Altitude"), GUIContent.none);
y.text = "Altitude Mode"; EditorGUI.PrefixLabel(altitudeModeLabelRect, y); EditorGUI.PropertyField(altitudeModeRect, property.FindPropertyRelative("AltitudeMode"), GUIContent.none); }
EditorGUI.indentLevel = indent;
EditorGUI.EndProperty(); }
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { if (property.FindPropertyRelative("OverrideAltitude").boolValue) { return base.GetPropertyHeight(property, label) * 2 + 20; } else { return base.GetPropertyHeight(property, label); // * 2 + 20;
} // Height is two times the standard height plus 20 pixels
} }}
|