Browse Source

Draw navigation debug geometry in Editor

1vanK 9 years ago
parent
commit
61f8fb5205

+ 1 - 0
Docs/GettingStarted.dox

@@ -832,6 +832,7 @@ F1                 - Toggle console
 F2                 - Toggle rendering debug geometry
 F3                 - Toggle physics debug geometry
 F4                 - Toggle octree debug geometry
+F5                 - Toggle navigation debug geometry
 F11                - Captures a screenshot
 F12                - Toggle UI
 \endverbatim

+ 4 - 0
bin/Data/Scripts/Editor/EditorUI.as

@@ -1328,6 +1328,8 @@ void HandleHotKeysBlender( VariantMap& eventData)
         TogglePhysicsDebug();
     else if (key == KEY_F4)
         ToggleOctreeDebug();
+    else if (key == KEY_F5)
+        ToggleNavigationDebug();
     else if (key == KEY_F11)
     {
         Image@ screenshot = Image();
@@ -1519,6 +1521,8 @@ void HandleHotKeysStandard(VariantMap& eventData)
         TogglePhysicsDebug();
     else if (key == KEY_F4)
         ToggleOctreeDebug();
+    else if (key == KEY_F5)
+        ToggleNavigationDebug();
     else if (key == KEY_F11)
     {
         Image@ screenshot = Image();

+ 21 - 0
bin/Data/Scripts/Editor/EditorView.as

@@ -373,6 +373,7 @@ bool scaleSnap = false;
 bool renderingDebug = false;
 bool physicsDebug = false;
 bool octreeDebug = false;
+bool navigationDebug = false;
 int pickMode = PICK_GEOMETRIES;
 bool orbiting = false;
 
@@ -1655,6 +1656,21 @@ void HandlePostRenderUpdate()
     if (octreeDebug && editorScene.octree !is null)
         editorScene.octree.DrawDebugGeometry(true);
 
+    if (navigationDebug)
+    {
+        CrowdManager@ crowdManager = editorScene.GetComponent("CrowdManager");
+        if (crowdManager !is null)
+            crowdManager.DrawDebugGeometry(true);
+
+        Array<Component@>@ navMeshes = editorScene.GetComponents("NavigationMesh", true);
+        for (uint i = 0; i < navMeshes.length; ++i)
+            cast<NavigationMesh>(navMeshes[i]).DrawDebugGeometry(true);
+
+        Array<Component@>@ dynNavMeshes = editorScene.GetComponents("DynamicNavigationMesh", true);
+        for (uint i = 0; i < dynNavMeshes.length; ++i)
+            cast<DynamicNavigationMesh>(dynNavMeshes[i]).DrawDebugGeometry(true);        
+    }
+
     if (setViewportCursor | resizingBorder > 0)
     {
         SetViewportCursor();
@@ -1961,6 +1977,11 @@ void ToggleOctreeDebug()
     octreeDebug = !octreeDebug;
 }
 
+void ToggleNavigationDebug()
+{
+    navigationDebug = !navigationDebug;
+}
+
 bool StopTestAnimation()
 {
     testAnimState = null;

+ 0 - 1
bin/Data/UI/EditorInspector_Attribute.xml

@@ -18,7 +18,6 @@
                 <attribute name="Max Size" value="16 16" />
                 <attribute name="Layout Mode" value="Horizontal" />
                 <element type="BorderImage">
-                    <attribute name="Texture" value="Texture2D;Textures/UI.png" />
                     <attribute name="Image Rect" value="128 32 144 48" />
                 </element>
             </element>

+ 7 - 8
bin/Data/UI/EditorInspector_Tags.xml

@@ -4,14 +4,13 @@
     <attribute name="Layout Mode" value="Horizontal" />
     <attribute name="Layout Spacing" value="4" />
     <element type="Button">
-                <attribute name="Name" value="TagsSelect" />
-                <attribute name="Min Size" value="16 16" />
-                <attribute name="Max Size" value="16 16" />
-                <attribute name="Layout Mode" value="Horizontal" />
-                <element type="BorderImage">
-                    <attribute name="Texture" value="Texture2D;Textures/UI.png" />
-                    <attribute name="Image Rect" value="190 0 208 15" />
-                </element>
+        <attribute name="Name" value="TagsSelect" />
+        <attribute name="Min Size" value="16 16" />
+        <attribute name="Max Size" value="16 16" />
+        <attribute name="Layout Mode" value="Horizontal" />
+        <element type="BorderImage">
+            <attribute name="Image Rect" value="190 0 208 15" />
+        </element>
     </element>
     <element type="Text" style="EditorAttributeText">
         <attribute name="Name" value="TagsLabel" />