|
|
- using UnityEngine;
- using UnityEditor;
- using System.Collections;
-
- namespace OVR
- {
-
- /*
- -----------------------
-
- OSPPropsPropertyDrawer
-
- -----------------------
- */
- [CustomPropertyDrawer(typeof(OSPProps))]
- public class OSPPropsPropertyDrawer : PropertyDrawer {
-
- static float lineHeight = EditorGUIUtility.singleLineHeight + 2.0f;
- static float indent = 32.0f;
- // TODO - some day just enumerate these
- static string[] props = new string[] { "useFastOverride", "gain", "enableInvSquare", "volumetric" , "invSquareFalloff" };
- static string[] names = new string[] { "Reflections Enabled", "Gain", "Enable Oculus Atten.", "Volumetric", "Range" };
- static int[] lines = new int[] { 1, 1, 1, 1, 2, 2 };
- /*
- -----------------------
- OnGUI()
- -----------------------
- */
- public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) {
- SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization");
- position.height = lineHeight;
- EditorGUI.PropertyField( position, playSpatializedProp );
- if ( playSpatializedProp.boolValue ) {
- position.y += lineHeight + 4.0f;
- Rect posLine = position;
- posLine.x += indent;
- posLine.width -= indent;
- posLine.height = 1f;
- GUI.Box( posLine, "" );
- position.y -= 10.0f;
- for ( int i = 0; i < props.Length; i++ ) {
- position.y += lineHeight;
- position.height = ( lineHeight * lines[i] );
- SerializedProperty sibling = prop.FindPropertyRelative( props[i] );
- EditorGUI.PropertyField( position, sibling, new GUIContent( names[i] ) );
- }
- }
- }
-
- /*
- -----------------------
- GetPropertyHeight()
- -----------------------
- */
- public override float GetPropertyHeight (SerializedProperty prop, GUIContent label) {
- SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization");
- if ( !playSpatializedProp.boolValue ) {
- return base.GetPropertyHeight( prop, label );
- } else {
- return base.GetPropertyHeight( prop, label ) + ( lineHeight * ( props.Length + 1 ) ) + 16.0f;
- }
- }
-
- }
-
- } // namespace OVR
|