Advertisement
Cookie042

??

May 10th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.28 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3.  
  4. public class CrewMemberBehaviour : MonoBehaviour
  5. {
  6.     //will show in the inspector
  7.     public CrewMemberType.MemberEnum selectedMember;
  8. }
  9.  
  10. #if UNITY_EDITOR
  11.     [UnityEditor.CustomEditor(typeof(CrewMemberBehaviour))]
  12.     public class CrewMemberBehaviourEditor : UnityEditor.Editor
  13.     {
  14.         private CrewMemberBehaviour tar;
  15.         private void OnEnable() => tar = target as CrewMemberBehaviour;
  16.  
  17.         public override void OnInspectorGUI()
  18.         {
  19.             DrawDefaultInspector();
  20.  
  21.             UnityEditor.EditorGUILayout.LabelField(CrewMemberType.cwDict[tar.selectedMember].ID);
  22.             UnityEditor.EditorGUILayout.LabelField(CrewMemberType.cwDict[tar.selectedMember].name);
  23.             UnityEditor.EditorGUILayout.LabelField(CrewMemberType.cwDict[tar.selectedMember].isHappy ? "true" : "false");
  24.             UnityEditor.EditorGUILayout.LabelField(CrewMemberType.cwDict[tar.selectedMember].isSad ? "true" : "false");
  25.         }
  26.     }
  27.  
  28.     [UnityEditor.InitializeOnLoad]
  29. #endif
  30.     [System.Serializable]
  31.     public class CrewMemberType
  32.     {
  33.         [System.Serializable]
  34.         public enum MemberEnum
  35.         {
  36.             Capt, Cook, Prisoner
  37.         }
  38.  
  39.         static CrewMemberType() // static constructor, for InitializeOnLoad also runs at runtime in build versions
  40.         {
  41.             Debug.Log("CrewMemberType Static Ctor: building CrewMemberType Collection");
  42.             cwDict = new Dictionary<MemberEnum, CrewMemberType>();
  43.             cwDict.Add(MemberEnum.Capt, new CrewMemberType("ARRRR", "Matey", true, true));
  44.             cwDict.Add(MemberEnum.Cook, new CrewMemberType("Yumm", "Yumm", true, false));
  45.             cwDict.Add(MemberEnum.Prisoner, new CrewMemberType("HelpMe", "plz", false, true));
  46.         }
  47.  
  48.         public static Dictionary<MemberEnum, CrewMemberType> cwDict;
  49.  
  50.         [HideInInspector] public string ID;
  51.         [HideInInspector] public string name;
  52.         [HideInInspector] public bool isHappy;
  53.         [HideInInspector] public bool isSad;
  54.  
  55.         public CrewMemberType(string id, string name, bool isHappy, bool isSad)
  56.         {
  57.             ID = id;
  58.             this.name = name;
  59.             this.isHappy = isHappy;
  60.             this.isSad = isSad;
  61.         }
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement