internal void DrawWorkspace(ref BehaviourTreeEditorPresenter.Model model) { GUILayout.BeginVertical(); { DrawToolbar(ref model); GUILayout.BeginHorizontal(); { DrawNodeGraph(); if (bShowParameters) { EditorGUILayout.BeginVertical(GUILayout.Width(300)); { DrawParameters(); } EditorGUILayout.EndVertical(); } } GUILayout.EndHorizontal(); Nodes.HandleEvents(this); DrawFooter(ref model); } EditorGUILayout.EndVertical(); if (Nodes.WantsRepaint) { Repaint(); } }
private void DrawFooter(ref BehaviourTreeEditorPresenter.Model model) { EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true)); // GUI.skin.box, { if (GUILayout.Button(model.AssetPath, EditorStyles.label)) { Selection.activeObject = model.TreeAsset; EditorGUIUtility.PingObject(model.TreeAsset); } GUILayout.FlexibleSpace(); GUILayout.Label($"<<{(Nodes.CurrentMouseMode != null ? Nodes.CurrentMouseMode.GetType().Name : "null")}>>"); //GUILayout.Label($"{Nodes.ScrollPos} :: {Event.current.mousePosition} :: "); //GUILayout.Label($"{Nodes.ZoomLevel * 100:##.##}%"); Nodes.ZoomLevel = GUILayout.HorizontalSlider(Nodes.ZoomLevel, 0.25f, 1, GUILayout.Width(64)); } EditorGUILayout.EndHorizontal(); }
internal void RecreateNodes(ref BehaviourTreeEditorPresenter.Model model) { if (NodeLookup != null) { NodeLookup.Clear(); } else { NodeLookup = new Dictionary <BehaviourTreeNode, BehaviourTreeEditorNode>(); } Nodes.ClearNodes(); Nodes.ScrollPos = model.TreeAsset.EditorPos; foreach (var node in model.TreeAsset.Nodes) { var editorNode = new BehaviourTreeEditorNode(model.TreeAsset, node, Presenter); NodeLookup[node] = editorNode; Nodes.AddNode(editorNode); } foreach (var node in Nodes.AllNodes.Select(n => n as BehaviourTreeEditorNode)) { if (node != null && node.TreeNode.IsParentNode()) { var childNodes = node.TreeNode.AsParentNode().GetChildNodes(); if (childNodes != null) { foreach (var childNode in childNodes) { var foundNode = NodeLookup[childNode]; if (GraphNode.CanMakeConnection(node, foundNode)) { GraphNode.MakeConnection(node, foundNode); } } } } } }
private void DrawToolbar(ref BehaviourTreeEditorPresenter.Model model) { EditorGUILayout.BeginHorizontal(EditorStyles.toolbar, GUILayout.ExpandWidth(true)); { GUILayout.Label(model.TreeAsset.name); /*if (ExecuteInRuntime()) * { * GUI.color = Color.yellow; * * EditorGUILayout.Separator(); * * GUILayout.Label("PLAYING : " + RuntimeController.name); * * GUI.color = Color.white; * * if (GUILayout.Button("select", EditorStyles.toolbarButton)) * { * Selection.activeGameObject = RuntimeController.gameObject; * } * }*/ if (Presenter.NeedsRepair(model.AssetPath, model.TreeAsset)) { using (new EditorAreaUtils.GUIColor(Color.red)) { EditorGUILayout.Separator(); GUILayout.Label("Optimizeable"); } } GUILayout.FlexibleSpace(); bShowParameters = GUILayout.Toggle(bShowParameters, "Parameters", EditorStyles.toolbarButton); } EditorGUILayout.EndHorizontal(); }