|
|
|
|
|
|
using UnityEngine; |
|
|
|
using UnityEditor; |
|
|
|
|
|
|
|
namespace GameplayIngredients.Editor |
|
|
|
{ |
|
|
|
[CustomPropertyDrawer(typeof(Actions.ToggleBehaviourAction.BehaviourToggle))] |
|
|
|
public class BehaviourTogglePropertyDrawer : PropertyDrawer |
|
|
|
{ |
|
|
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) |
|
|
|
{ |
|
|
|
var toggle = property.FindPropertyRelative("State"); |
|
|
|
var bhv = property.FindPropertyRelative("Behaviour"); |
|
|
|
|
|
|
|
var toggleRect = new Rect(position); |
|
|
|
toggleRect.xMin = toggleRect.xMax - 80; |
|
|
|
|
|
|
|
var objRect = new Rect(position); |
|
|
|
objRect.xMax -= 80; |
|
|
|
|
|
|
|
toggle.intValue = EditorGUI.IntPopup(toggleRect, toggle.intValue, labels, values); |
|
|
|
bhv.objectReferenceValue = EditorGUI.ObjectField(objRect, bhv.objectReferenceValue, typeof(Behaviour), true); |
|
|
|
} |
|
|
|
|
|
|
|
static GUIContent[] labels = { new GUIContent("Disable"), new GUIContent("Enable"), new GUIContent("Toggle") }; |
|
|
|
static int[] values = { 0, 1, 2 }; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|