public override void DrawInspector() { GUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); GUILayout.Space(40); needsOneKeyword = EditorGUILayout.Toggle(needsOneKeyword, GUILayout.Width(12)); GUILayout.Label("Needs One Keyword?"); GUILayout.FlexibleSpace(); needsOneKeyword = EditorGUILayout.Toggle(!needsOneKeyword, GUILayout.Width(12)); GUILayout.Label("Needs All Keywords?"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Space(40); keywords.DrawInspector(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); }
public int DrawInspector(int pSel) { if (ReferenceEquals(payload, null)) { payload = (Tapestry_EffectBuilder_Payload_Damage)ScriptableObject.CreateInstance("Tapestry_EffectBuilder_Payload_Damage"); } if (ReferenceEquals(keywords, null)) { keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry"); } Dictionary <string, Type> payloads = Tapestry_Config.GetPayloadTypes(); GUIStyle title = new GUIStyle(); title.fontStyle = FontStyle.Bold; title.fontSize = 14; EditorGUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); GUILayout.Label("Effect", title, GUILayout.Width(60)); displayName = EditorGUILayout.DelayedTextField(displayName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Space(65); canBeStacked = EditorGUILayout.Toggle(canBeStacked, GUILayout.Width(12)); GUILayout.Label("Can be stacked?"); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Duration", title); GUILayout.FlexibleSpace(); if (payload.mustBeInstant) { duration = Tapestry_EffectBuilder_Duration.Instant; EditorGUILayout.Popup(0, new string[] { "Instant" }); } else { duration = (Tapestry_EffectBuilder_Duration)EditorGUILayout.EnumPopup(duration); } EditorGUILayout.EndHorizontal(); if (duration == Tapestry_EffectBuilder_Duration.Timed) { payload.exposeTimeControls = true; EditorGUILayout.BeginHorizontal("box"); GUILayout.Space(40); decayTime = EditorGUILayout.DelayedFloatField(decayTime, GUILayout.Width(42)); GUILayout.Label("Seconds"); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); } else if (duration == Tapestry_EffectBuilder_Duration.Permanent) { payload.exposeTimeControls = true; } else { payload.exposeTimeControls = false; } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Payload", title); GUILayout.FlexibleSpace(); pSel = EditorGUILayout.Popup(pSel, payloads.Keys.ToArray()); EditorGUILayout.EndHorizontal(); Type pType = payloads[payloads.Keys.ToArray()[pSel]]; if (ReferenceEquals(payload, null) || payload.GetType() != pType) { payload = (Tapestry_EffectBuilder_Payload)ScriptableObject.CreateInstance(pType.ToString()); } payload.DrawInspector(); EditorGUILayout.EndVertical(); keywords.DrawInspector(); EditorGUILayout.EndVertical(); //if (GUILayout.Button("save")) //{ // AssetDatabase.CreateAsset(this, "Assets/Prefabs/Tapestry/Effects/" + displayName + ".asset"); //} return(pSel); }