|
/************************************************************************************
|
|
Filename : OVRNamedArrayPropertyDrawer.cs
|
|
Content : Adds a custom named array drawer to the Unity editor
|
|
Created : May 17th, 2018
|
|
Copyright : Copyright Facebook Technologies, LLC and its affiliates.
|
|
All rights reserved.
|
|
|
|
Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
|
|
you may not use the Oculus Audio SDK except in compliance with the License,
|
|
which is provided at the time of installation or download, or which
|
|
otherwise accompanies this software in either electronic or hard copy form.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
https://developer.oculus.com/licenses/audio-3.3/
|
|
|
|
Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
************************************************************************************/
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
// Adds a custom named array drawer to the Unity editor
|
|
[CustomPropertyDrawer( typeof(OVRNamedArrayAttribute) )]
|
|
public class OVRNamedArrayPropertyDrawer : PropertyDrawer {
|
|
public override void OnGUI( Rect rect, SerializedProperty property, GUIContent label ) {
|
|
try {
|
|
int pos = int.Parse(property.propertyPath.Split('[', ']')[1]);
|
|
EditorGUI.PropertyField( rect, property,
|
|
new GUIContent( ( (OVRNamedArrayAttribute)attribute ).names[pos] ) );
|
|
} catch {
|
|
EditorGUI.PropertyField( rect, property, label );
|
|
}
|
|
}
|
|
}
|