├── .gitattributes ├── .gitignore ├── CHANGELOG.md ├── CHANGELOG.md.meta ├── Documentation~ ├── Images │ ├── InstallPackage.gif │ ├── Logo.png │ ├── OpenPackageManager.gif │ ├── ScreenShot.gif │ └── ScreenShot.png ├── articles.meta ├── docfx.json └── toc.yml ├── Editor.meta ├── Editor ├── BehaviorTreeEditor.cs ├── BehaviorTreeEditor.cs.meta ├── Resources.meta ├── Resources │ ├── BehaviorTreeEditor.uss │ ├── BehaviorTreeEditor.uss.meta │ ├── BehaviorTreeEditor.uxml │ ├── BehaviorTreeEditor.uxml.meta │ ├── BehaviorTreeNodeView.uss │ ├── BehaviorTreeNodeView.uss.meta │ ├── BehaviorTreeNodeView.uxml │ └── BehaviorTreeNodeView.uxml.meta ├── Styles.txt ├── Styles.txt.meta ├── Views.meta ├── Views │ ├── BehaviorTreeNodeView.cs │ ├── BehaviorTreeNodeView.cs.meta │ ├── UIBuilder.meta │ └── UIBuilder │ │ ├── BehaviorTreeView.cs │ │ ├── BehaviorTreeView.cs.meta │ │ ├── SplitView.cs │ │ └── SplitView.cs.meta ├── jameslafritz.GraphViewBehaviorTree.Editor.asmdef └── jameslafritz.GraphViewBehaviorTree.Editor.asmdef.meta ├── LICENSE.md ├── LICENSE.md.meta ├── README.md ├── README.md.meta ├── Runtime.meta ├── Runtime ├── BehaviorTree.cs ├── BehaviorTree.cs.meta ├── BehaviorTreeRunner.cs ├── BehaviorTreeRunner.cs.meta ├── Nodes.meta ├── Nodes │ ├── Action Nodes.meta │ ├── Action Nodes │ │ ├── ActionNode.cs │ │ ├── ActionNode.cs.meta │ │ ├── DebugLogNode.cs │ │ ├── DebugLogNode.cs.meta │ │ ├── Fail.cs │ │ ├── Fail.cs.meta │ │ ├── WaitNode.cs │ │ └── WaitNode.cs.meta │ ├── Composite Nodes.meta │ ├── Composite Nodes │ │ ├── CompositeNode.cs │ │ ├── CompositeNode.cs.meta │ │ ├── SequencerNode.cs │ │ └── SequencerNode.cs.meta │ ├── Decorator Nodes.meta │ ├── Decorator Nodes │ │ ├── DecoratorNode.cs │ │ ├── DecoratorNode.cs.meta │ │ ├── DelayNode.cs │ │ ├── DelayNode.cs.meta │ │ ├── RepeatNode.cs │ │ └── RepeatNode.cs.meta │ ├── Node.cs │ └── Node.cs.meta ├── jameslafritz.graphviewbehaviortree.runtime.asmdef └── jameslafritz.graphviewbehaviortree.runtime.asmdef.meta ├── Samples~ └── Simple Tree │ ├── BehaviorTree.asset │ ├── BehaviorTree.asset.meta │ ├── BehaviorTree1.asset │ ├── BehaviorTree1.asset.meta │ ├── Scenes.meta │ └── Scenes │ ├── SampleScene.unity │ └── SampleScene.unity.meta ├── Third Party Notices.md ├── Third Party Notices.md.meta ├── _config.yml ├── _config.yml.meta ├── docs.meta ├── docs ├── Images.meta ├── Images │ ├── InstallPackage.gif │ ├── InstallPackage.gif.meta │ ├── Logo.png │ ├── Logo.png.meta │ ├── OpenPackageManager.gif │ ├── OpenPackageManager.gif.meta │ ├── ScreenShot.gif │ ├── ScreenShot.gif.meta │ ├── ScreenShot.png │ └── ScreenShot.png.meta ├── _config.yml ├── _config.yml.meta ├── api.meta ├── api │ ├── GraphViewBehaviorTree.BehaviorTree.html │ ├── GraphViewBehaviorTree.BehaviorTree.html.meta │ ├── GraphViewBehaviorTree.BehaviorTreeRunner.html │ ├── GraphViewBehaviorTree.BehaviorTreeRunner.html.meta │ ├── GraphViewBehaviorTree.Editor.BehaviorTreeEditor.html │ ├── GraphViewBehaviorTree.Editor.BehaviorTreeEditor.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeNodeView.html │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeNodeView.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeView.UxmlFactory.html │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeView.UxmlFactory.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeView.html │ ├── GraphViewBehaviorTree.Editor.Views.BehaviorTreeView.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.SplitView.UxmlFactory.html │ ├── GraphViewBehaviorTree.Editor.Views.SplitView.UxmlFactory.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.SplitView.html │ ├── GraphViewBehaviorTree.Editor.Views.SplitView.html.meta │ ├── GraphViewBehaviorTree.Editor.Views.html │ ├── GraphViewBehaviorTree.Editor.Views.html.meta │ ├── GraphViewBehaviorTree.Editor.html │ ├── GraphViewBehaviorTree.Editor.html.meta │ ├── GraphViewBehaviorTree.Nodes.ActionNode.html │ ├── GraphViewBehaviorTree.Nodes.ActionNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.CompositeNode.html │ ├── GraphViewBehaviorTree.Nodes.CompositeNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.DebugLogNode.html │ ├── GraphViewBehaviorTree.Nodes.DebugLogNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.DecoratorNode.html │ ├── GraphViewBehaviorTree.Nodes.DecoratorNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.DelayNode.html │ ├── GraphViewBehaviorTree.Nodes.DelayNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.Fail.html │ ├── GraphViewBehaviorTree.Nodes.Fail.html.meta │ ├── GraphViewBehaviorTree.Nodes.Node.State.html │ ├── GraphViewBehaviorTree.Nodes.Node.State.html.meta │ ├── GraphViewBehaviorTree.Nodes.Node.html │ ├── GraphViewBehaviorTree.Nodes.Node.html.meta │ ├── GraphViewBehaviorTree.Nodes.RepeatNode.html │ ├── GraphViewBehaviorTree.Nodes.RepeatNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.SequencerNode.html │ ├── GraphViewBehaviorTree.Nodes.SequencerNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.WaitNode.html │ ├── GraphViewBehaviorTree.Nodes.WaitNode.html.meta │ ├── GraphViewBehaviorTree.Nodes.html │ ├── GraphViewBehaviorTree.Nodes.html.meta │ ├── GraphViewBehaviorTree.html │ ├── GraphViewBehaviorTree.html.meta │ ├── index.html │ ├── index.html.meta │ ├── toc.html │ └── toc.html.meta ├── articles.meta ├── articles │ ├── CHANGELOG.html │ ├── CHANGELOG.html.meta │ ├── LICENSE.html │ ├── LICENSE.html.meta │ ├── README.html │ ├── README.html.meta │ ├── Third Party Notices.html │ └── Third Party Notices.html.meta ├── favicon.ico ├── favicon.ico.meta ├── fonts.meta ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.eot.meta │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.svg.meta │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.ttf.meta │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff.meta │ ├── glyphicons-halflings-regular.woff2 │ └── glyphicons-halflings-regular.woff2.meta ├── index.html ├── index.html.meta ├── index.json ├── index.json.meta ├── index │ └── README.html ├── logo.svg ├── logo.svg.meta ├── manifest.json ├── manifest.json.meta ├── search-stopwords.json ├── search-stopwords.json.meta ├── styles.meta ├── styles │ ├── docfx.css │ ├── docfx.css.meta │ ├── docfx.js │ ├── docfx.js.meta │ ├── docfx.vendor.css │ ├── docfx.vendor.css.meta │ ├── docfx.vendor.js │ ├── docfx.vendor.js.meta │ ├── lunr.js │ ├── lunr.js.meta │ ├── lunr.min.js │ ├── lunr.min.js.meta │ ├── main.css │ ├── main.css.meta │ ├── main.js │ ├── main.js.meta │ ├── search-worker.js │ └── search-worker.js.meta ├── toc.html ├── toc.html.meta ├── xrefmap.yml └── xrefmap.yml.meta ├── package.json ├── package.json.meta ├── ~.gitignore └── ~.gitignore.meta /.gitattributes: -------------------------------------------------------------------------------- 1 | ## Unity ## 2 | 3 | *.cs diff=csharp text 4 | *.cginc text 5 | *.shader text 6 | 7 | *.mat merge=unityyamlmerge eol=lf 8 | *.anim merge=unityyamlmerge eol=lf 9 | *.unity merge=unityyamlmerge eol=lf 10 | *.prefab merge=unityyamlmerge eol=lf 11 | *.physicsMaterial2D merge=unityyamlmerge eol=lf 12 | *.physicMaterial merge=unityyamlmerge eol=lf 13 | *.asset merge=unityyamlmerge eol=lf 14 | *.meta merge=unityyamlmerge eol=lf 15 | *.controller merge=unityyamlmerge eol=lf 16 | 17 | 18 | ## git-lfs ## 19 | 20 | #Image 21 | *.jpg filter=lfs diff=lfs merge=lfs -text 22 | *.jpeg filter=lfs diff=lfs merge=lfs -text 23 | *.png filter=lfs diff=lfs merge=lfs -text 24 | *.gif filter=lfs diff=lfs merge=lfs -text 25 | *.psd filter=lfs diff=lfs merge=lfs -text 26 | *.ai filter=lfs diff=lfs merge=lfs -text 27 | 28 | #Audio 29 | *.mp3 filter=lfs diff=lfs merge=lfs -text 30 | *.wav filter=lfs diff=lfs merge=lfs -text 31 | *.ogg filter=lfs diff=lfs merge=lfs -text 32 | 33 | #Video 34 | *.mp4 filter=lfs diff=lfs merge=lfs -text 35 | *.mov filter=lfs diff=lfs merge=lfs -text 36 | 37 | #3D Object 38 | *.FBX filter=lfs diff=lfs merge=lfs -text 39 | *.fbx filter=lfs diff=lfs merge=lfs -text 40 | *.blend filter=lfs diff=lfs merge=lfs -text 41 | *.obj filter=lfs diff=lfs merge=lfs -text 42 | 43 | #ETC 44 | *.a filter=lfs diff=lfs merge=lfs -text 45 | *.exr filter=lfs diff=lfs merge=lfs -text 46 | *.tga filter=lfs diff=lfs merge=lfs -text 47 | *.pdf filter=lfs diff=lfs merge=lfs -text 48 | *.zip filter=lfs diff=lfs merge=lfs -text 49 | *.dll filter=lfs diff=lfs merge=lfs -text 50 | *.unitypackage filter=lfs diff=lfs merge=lfs -text 51 | *.aif filter=lfs diff=lfs merge=lfs -text 52 | *.ttf filter=lfs diff=lfs merge=lfs -text 53 | *.rns filter=lfs diff=lfs merge=lfs -text 54 | *.reason filter=lfs diff=lfs merge=lfs -text 55 | *.lxo filter=lfs diff=lfs merge=lfs -text 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /Documentation~/** 2 | **/obj/** 3 | **/obj.meta -------------------------------------------------------------------------------- /CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a072f31ccda119b41b3c8913a45ee7a8 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Documentation~/Images/InstallPackage.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:60dc1b394e40cc4f339443696b718174343b66d0caf498d2f6b4f5508ed7ea85 3 | size 175067 4 | -------------------------------------------------------------------------------- /Documentation~/Images/Logo.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f0b6ba829504ec624a210a8e8ed4f620e7c09a2f0e62c9b172b8782220649642 3 | size 3181356 4 | -------------------------------------------------------------------------------- /Documentation~/Images/OpenPackageManager.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b9d04e0384db26568417a2eb82818dae82185f734a37f3f5f431c6f1e9407733 3 | size 1424069 4 | -------------------------------------------------------------------------------- /Documentation~/Images/ScreenShot.gif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:85a99fc6b9d541892d85960097b15ecdee5a776e909a3767e313cbccef87cd35 3 | size 361377 4 | -------------------------------------------------------------------------------- /Documentation~/Images/ScreenShot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4aae8c2430da823feb290e1a5841ac8b3efec836f3651e8dbe2a1cd68126687 3 | size 174345 4 | -------------------------------------------------------------------------------- /Documentation~/articles.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c4171ff6dce47ee8f8f7c02b6896812 3 | timeCreated: 1654334245 -------------------------------------------------------------------------------- /Documentation~/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": [ 3 | { 4 | "src": [ 5 | { 6 | "src":"../", 7 | "files": ["**.cs"], 8 | "exclude": [ 9 | "_site/**", 10 | "**/bin/**", 11 | "**/obj/**", 12 | "**/[Tt]ests/**" 13 | ] 14 | } 15 | ], 16 | "dest": "api", 17 | "disableGitFeatures": false, 18 | "disableDefaultFilter": false, 19 | "force": true, 20 | "properties": {"TargetFramework": "netstandard2.1"} 21 | } 22 | ], 23 | "build": { 24 | "content": [ 25 | { 26 | "files": ["api/**"] 27 | }, 28 | { 29 | "src": "../", 30 | "files": [ 31 | "CHANGELOG.md", 32 | "LICENSE.md", 33 | "Third Party Notices.md" 34 | ], 35 | "dest": "articles/" 36 | }, 37 | { 38 | "files": ["**/toc.yml", "**.md"], 39 | "exclude": [ 40 | "_site/**", 41 | "api/**", 42 | "articles/**", 43 | "Images/**", 44 | "obj/**", 45 | "**/bin/**", 46 | "**/obj/**", 47 | "**/[Tt]ests/**", 48 | "**/api/**" 49 | ] 50 | } 51 | ], 52 | "resource": [ 53 | { 54 | "files": ["Images/**"] 55 | } 56 | ], 57 | "overwrite": [ 58 | { 59 | "files": [ 60 | "api/**.md" 61 | ], 62 | "exclude": [ 63 | "obj/**", 64 | "_site/**" 65 | ] 66 | } 67 | ], 68 | "dest": "../docs", 69 | "globalMetadataFiles": [], 70 | "fileMetadataFiles": [], 71 | "template": [ 72 | "default", 73 | "templates/unity" 74 | ], 75 | "globalMetadata": { 76 | "_appTitle": "Graph View Behavior Tree Documentation", 77 | "_enableSearch": true 78 | }, 79 | "postProcessors": [], 80 | "markdownEngineName": "markdig", 81 | "noLangKeyword": false, 82 | "keepFileLink": false, 83 | "cleanupCacheHistory": false, 84 | "disableGitFeatures": false 85 | } 86 | } -------------------------------------------------------------------------------- /Documentation~/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Graph View Behavior Tree 2 | href: index.md 3 | - name: LICENSE 4 | href: ../LICENSE.md 5 | items: 6 | - name: Third Party Notices 7 | href: ../Third Party Notices.md 8 | - name: Api Documentation 9 | href: api/ 10 | items: 11 | - name: Change Log 12 | href: ../CHANGELOG.md 13 | -------------------------------------------------------------------------------- /Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74d2e6cf372f5ff4ab85b82f077037fe 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/BehaviorTreeEditor.cs: -------------------------------------------------------------------------------- 1 | using GraphViewBehaviorTree.Editor.Views; 2 | using GraphViewBehaviorTree.Nodes; 3 | using UnityEditor; 4 | using UnityEditor.Callbacks; 5 | using UnityEditor.UIElements; 6 | using UnityEngine; 7 | using UnityEngine.UIElements; 8 | 9 | namespace GraphViewBehaviorTree.Editor 10 | { 11 | /// 12 | /// Derive from UnityEditor.EditorWindow class to create an editor window to Edit Behavior Tree Scriptable Objects. 13 | /// Requires file named "BehaviorTreeEditor.uxml" to be in an Editor Resources Folder 14 | /// Uses Visual Elements requires a an an UnityEngine.UIElements.IMGUIContainer with a name of InspectorView. 15 | /// 16 | public class BehaviorTreeEditor : EditorWindow 17 | { 18 | /// The associated with this view. 19 | private BehaviorTreeView m_treeView; 20 | 21 | /// The UnityEngine.UIElements.IMGUIContainer associated with the view. 22 | private IMGUIContainer m_inspectorView; 23 | 24 | /// The UnityEditor.Editor associated with this view. 25 | private UnityEditor.Editor m_editor; 26 | 27 | /// 28 | /// Adds a Entry to Window/Behavior Tree/Editor 29 | /// Will Open the Behavior Tree Editor to Edit Behavior Trees 30 | /// 31 | [MenuItem("Window/Behavior Tree/Editor")] 32 | public static void OpenTreeEditor() 33 | { 34 | GetWindow("Behavior Tree Editor"); 35 | } 36 | 37 | /// 38 | /// Use Unity Editor Call Back On Open Asset. 39 | /// 40 | /// True if this method handled the asset. Else return false. 41 | [OnOpenAsset] 42 | public static bool OnOpenAsset(int instanceID, int line) 43 | { 44 | if (Selection.activeObject is not BehaviorTree) return false; 45 | OpenTreeEditor(); 46 | return true; 47 | } 48 | 49 | /// 50 | /// CreateGUI is called when the EditorWindow's rootVisualElement is ready to be populated. 51 | /// 52 | /// Clones a Visual Tree Located in an Editor Resources Folder BehaviorTreeEditor.uxml"; 53 | /// 54 | private void CreateGUI() 55 | { 56 | //VisualTreeAsset visualTree = Resources.Load("BehaviorTreeEditor.uxml"); 57 | VisualTreeAsset vt = Resources.Load("BehaviorTreeEditor"); 58 | vt.CloneTree(rootVisualElement); 59 | 60 | m_treeView = rootVisualElement.Q(); 61 | m_inspectorView = rootVisualElement.Q("InspectorView"); 62 | m_treeView.onNodeSelected = OnNodeSelectionChange; 63 | 64 | OnSelectionChange(); 65 | } 66 | 67 | /// 68 | /// This function is called when the object is loaded. 69 | /// 70 | private void OnEnable() 71 | { 72 | EditorApplication.playModeStateChanged -= OnplayModeStateChanged; 73 | EditorApplication.playModeStateChanged += OnplayModeStateChanged; 74 | } 75 | 76 | /// 77 | /// This function is called when the scriptable object goes out of scope. 78 | /// 79 | private void OnDisable() 80 | { 81 | EditorApplication.playModeStateChanged -= OnplayModeStateChanged; 82 | } 83 | 84 | /// 85 | /// OnInspectorUpdate is called at 10 frames per second to give the inspector a chance to update. 86 | /// 87 | private void OnInspectorUpdate() 88 | { 89 | m_treeView?.UpdateNodeStates(); 90 | } 91 | 92 | /// 93 | /// Called whenever the selection has changed. 94 | /// 95 | /// If the Selected Object is a Behavior Tree Binds the Tree SO to the root element and populates the tree view. 96 | /// 97 | private void OnSelectionChange() 98 | { 99 | BehaviorTree tree = Selection.activeObject as BehaviorTree; 100 | if (tree == null) 101 | { 102 | if (Selection.activeGameObject) 103 | { 104 | BehaviorTreeRunner treeRunner = Selection.activeGameObject.GetComponent(); 105 | if (treeRunner) 106 | { 107 | tree = treeRunner.tree; 108 | } 109 | } 110 | } 111 | 112 | if (tree != null) 113 | { 114 | if (Application.isPlaying || AssetDatabase.CanOpenAssetInEditor(tree.GetInstanceID())) 115 | { 116 | SerializedObject so = new SerializedObject(tree); 117 | rootVisualElement.Bind(so); 118 | if (m_treeView != null) 119 | m_treeView.PopulateView(tree); 120 | 121 | return; 122 | } 123 | } 124 | 125 | rootVisualElement.Unbind(); 126 | 127 | TextField textField = rootVisualElement.Q("BehaviorTreeName"); 128 | if (textField != null) 129 | { 130 | textField.value = string.Empty; 131 | } 132 | } 133 | 134 | /// 135 | /// Method registered to UnityEditor.EditorApplication.playModeStateChanged 136 | /// 137 | /// The UnityEditor.PlayModeStateChange object. 138 | private void OnplayModeStateChanged(PlayModeStateChange obj) 139 | { 140 | switch (obj) 141 | { 142 | // Occurs during the next update of the Editor application if it is in edit mode and was previously in play mode. 143 | case PlayModeStateChange.EnteredEditMode: 144 | OnSelectionChange(); 145 | break; 146 | // Occurs when exiting edit mode, before the Editor is in play mode. 147 | case PlayModeStateChange.ExitingEditMode: 148 | break; 149 | // Occurs during the next update of the Editor application if it is in play mode and was previously in edit mode. 150 | case PlayModeStateChange.EnteredPlayMode: 151 | OnSelectionChange(); 152 | break; 153 | // Occurs when exiting play mode, before the Editor is in edit mode. 154 | case PlayModeStateChange.ExitingPlayMode: 155 | break; 156 | } 157 | } 158 | 159 | /// 160 | /// Used to Observer the tree view for when a Node is Selected. 161 | /// Causes the Node to display in the Inspector View. 162 | /// 163 | /// The Selected Node 164 | private void OnNodeSelectionChange(Node node) 165 | { 166 | m_inspectorView.Clear(); 167 | DestroyImmediate(m_editor); 168 | m_editor = UnityEditor.Editor.CreateEditor(node); 169 | m_inspectorView.onGUIHandler = () => 170 | { 171 | if (m_editor.target) 172 | m_editor.OnInspectorGUI(); 173 | }; 174 | } 175 | } 176 | } -------------------------------------------------------------------------------- /Editor/BehaviorTreeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2c833f7ee895494bad89a748844392d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fa76895456e86a4a9e7e795b5db6707 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/Resources/BehaviorTreeEditor.uss: -------------------------------------------------------------------------------- 1 | #grid_background { 2 | --grid-background-color: rgba(32, 32, 32, 1); 3 | --line-color: rgba(72, 72, 72, 0.25); 4 | --thick-line-color: rgba(72, 72, 72, 0.5); 5 | --spacing: 40; 6 | --thick-lines: 1; 7 | } 8 | -------------------------------------------------------------------------------- /Editor/Resources/BehaviorTreeEditor.uss.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e96985bfa33cbe45813e0a9dfb406c9 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} 11 | disableValidation: 0 12 | -------------------------------------------------------------------------------- /Editor/Resources/BehaviorTreeEditor.uxml: -------------------------------------------------------------------------------- 1 | 2 |