Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///// The MonoBehaviour:
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public class MyMonoBehaviour : MonoBehaviour
- {
- public enum MyEnum { ValueA, ValueB, ValueC };
- private Dictionary<MyEnum, bool> m_MyEnumToggles = new Dictionary<MyEnum, bool> ();
- public bool m_MyBool;
- public string m_MyString;
- public bool GetEnumToggle (MyEnum key)
- {
- if (!m_MyEnumToggles.ContainsKey (key))
- {
- return false;
- }
- return m_MyEnumToggles[key];
- }
- public void SetEnumToggle (MyEnum key, bool value)
- {
- m_MyEnumToggles[key] = value;
- }
- }
- ///// The editor:
- using UnityEngine;
- using UnityEditor;
- using System;
- [CustomEditor (typeof (MyMonoBehaviour))]
- public class MyEditor : Editor
- {
- void OnInspectorGUI ()
- {
- MyMonoBehaviour myMonoBehaviour = target as MyMonoBehaviour;
- if (myMonoBehaviour == null)
- {
- GUILayout.Label ("No target");
- return;
- }
- foreach (int i in Enum.GetValues (typeof (MyMonoBehaviour.MyEnum)))
- {
- myMonoBehaviour.SetEnumToggle ((MyMonoBehaviour.MyEnum)i, EditorGUILayout.Toggle (Enum.GetName (typeof (MyMonoBehaviour.MyEnum), i), myMonoBehaviour.GetEnumToggle ((MyMonoBehaviour.MyEnum)i)));
- }
- DrawDefaultInspector ();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment