public void OnEnable() { BehaviorTreeAgent btAgent = target as BehaviorTreeAgent; BehaviorTree bt = null; if (btAgent.behaviorTree == null) { btAgent.Awake(); } bt = btAgent.behaviorTree; if (bt != null) { _manager = BTEditorManager.Manager; if (!_manager) { _manager = BTEditorManager.CreateInstance(bt, btAgent.btAsset); } else { _manager.behaviorTree = bt; } _manager.btInspector = this; _manager.inspectedAgent = btAgent; } }
public override void OnInspectorGUI() { DrawDefaultInspector(); if (_manager.selectedNode != null) { EditorGUILayout.LabelField("Last Status: " + _manager.selectedNode.lastStatus.ToString()); } BehaviorTreeAgent btAgent = target as BehaviorTreeAgent; if (btAgent.context != null) { EditorGUILayout.LabelField("Current Context"); foreach (KeyValuePair <string, object> item in btAgent.context.All) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(item.Key); EditorGUILayout.LabelField(item.Value.ToString()); EditorGUILayout.EndHorizontal(); } } if (GUILayout.Button("Show Behavior Tree editor")) { BTEditorWindow.ShowWindow(); } }
public Status Tick(GameObject agent, Context context) { BehaviorTreeAgent btAgent = agent.GetComponent <BehaviorTreeAgent>(); if (btAgent) { debugMode = btAgent.debugMode; } TotalTicks++; Status result = rootNode.Tick(agent, context); rootNode.lastStatus = result; rootNode.lastTick = TotalTicks; return(result); }