public override void DeepClone(List<System.Action<System.Func<IntelligenceState, IntelligenceState>>> stateCloneCallbacks) { if (action) { action = Instantiate(action); action.DeepClone(stateCloneCallbacks); } }
public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks) { #if UNITY_EDITOR invert = EditorGUILayout.Toggle("Invert:", invert); GUILayout.Label(string.Format("If{0}:", invert ? " not" : "")); if (ifAction == null) { Type res = callbacks.TriggerActionPopup(); if (res != null) { ifAction = CreateInstance(res) as TriggerAction; ifAction.name = res.Name; callbacks.AddAsset(ifAction); } } else { EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.BeginHorizontal(); GUILayout.Label(ifAction.name); if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20))) { callbacks.RemoveAsset(ifAction); } EditorGUILayout.EndHorizontal(); ifAction.DrawGUI(intelligence, callbacks); EditorGUILayout.EndVertical(); } GUILayout.Label("Then:"); if (thenAction == null) { Type res = callbacks.TriggerActionPopup(); if (res != null) { thenAction = CreateInstance(res) as TriggerAction; thenAction.name = res.Name; callbacks.AddAsset(thenAction); } } else { EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.BeginHorizontal(); GUILayout.Label(thenAction.name); if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20))) { callbacks.RemoveAsset(thenAction); } EditorGUILayout.EndHorizontal(); thenAction.DrawGUI(intelligence, callbacks); EditorGUILayout.EndVertical(); } #endif }
public override void DeepClone(List<Action<Func<IntelligenceState, IntelligenceState>>> stateCloneCallbacks) { if (ifAction) { ifAction = Instantiate(ifAction); ifAction.DeepClone(stateCloneCallbacks); } if (thenAction) { thenAction = Instantiate(thenAction); thenAction.DeepClone(stateCloneCallbacks); } }
public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks) { #if UNITY_EDITOR handledType = (NotificationType)EditorGUILayout.EnumPopup("Type:", handledType); savePosition = EditorGUILayout.Toggle("Save position", savePosition); if (savePosition) { EditorGUILayout.BeginHorizontal(); GUILayout.Label("var name:", GUILayout.Width(60)); varName = EditorGUILayout.TextField(varName); EditorGUILayout.EndHorizontal(); } saveSender = EditorGUILayout.Toggle("Save sender", saveSender); if (saveSender) { EditorGUILayout.BeginHorizontal(); GUILayout.Label("var name:", GUILayout.Width(80)); senderVarName = EditorGUILayout.TextField(senderVarName); EditorGUILayout.EndHorizontal(); } GUILayout.Label("Then:"); if (action == null) { System.Type res = callbacks.TriggerActionPopup(); if (res != null) { action = CreateInstance(res) as TriggerAction; action.name = res.Name; callbacks.AddAsset(action); } } else { if (action is HandleMessage) { callbacks.RemoveAsset(action); return; } EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.BeginHorizontal(); GUILayout.Label(action.name); if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20))) { callbacks.RemoveAsset(action); } EditorGUILayout.EndHorizontal(); action.DrawGUI(intelligence, callbacks); EditorGUILayout.EndVertical(); } #endif }