12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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
- }
- }
- }
|