Ver Fonte

增加导出navmesh脚本

tanghai há 8 anos atrás
pai
commit
8015495dc2

+ 48 - 0
Unity/Assets/Editor/ExportNavmesh.cs

@@ -0,0 +1,48 @@
+/************************************************ 
+ * 文件名:ExportNavMesh.cs 
+ * 描述:导出NavMesh数据给服务器使用 
+ * 创建人:陈鹏 
+ * 创建日期:20160926 
+ * http://blog.csdn.net/huutu/article/details/52672505 
+ * ************************************************/
+
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using UnityEngine.AI;
+using UnityEngine.SceneManagement;
+
+public class ExportNavMesh
+{
+	[MenuItem("NavMesh/Export")]
+	static void Export()
+	{
+		Debug.Log("ExportNavMesh");
+
+		NavMeshTriangulation tmpNavMeshTriangulation = NavMesh.CalculateTriangulation();
+
+		//新建文件  
+		string tmpPath = Application.dataPath + "/" + SceneManager.GetActiveScene().name + ".obj";
+		StreamWriter tmpStreamWriter = new StreamWriter(tmpPath);
+
+		//顶点  
+		for (int i = 0; i < tmpNavMeshTriangulation.vertices.Length; i++)
+		{
+			tmpStreamWriter.WriteLine("v  " + tmpNavMeshTriangulation.vertices[i].x + " " + tmpNavMeshTriangulation.vertices[i].y + " " + tmpNavMeshTriangulation.vertices[i].z);
+		}
+
+		tmpStreamWriter.WriteLine("g pPlane1");
+
+		//索引  
+		for (int i = 0; i < tmpNavMeshTriangulation.indices.Length;)
+		{
+			tmpStreamWriter.WriteLine("f " + (tmpNavMeshTriangulation.indices[i] + 1) + " " + (tmpNavMeshTriangulation.indices[i + 1] + 1) + " " + (tmpNavMeshTriangulation.indices[i + 2] + 1));
+			i = i + 3;
+		}
+
+		tmpStreamWriter.Flush();
+		tmpStreamWriter.Close();
+
+		Debug.Log("ExportNavMesh Success");
+	}
+}

+ 12 - 0
Unity/Assets/Editor/ExportNavmesh.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d2594920a38028d408bde3caef3194c3
+timeCreated: 1497608266
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
Unity/Unity.Editor.csproj

@@ -166,6 +166,7 @@
     <Compile Include="Assets\Editor\BehaviorTreeEditor\PropertyDesigner.cs" />
     <Compile Include="Assets\Editor\BehaviorTreeEditor\RightDesigner.cs" />
     <Compile Include="Assets\Editor\EditorInit.cs" />
+    <Compile Include="Assets\Editor\ExportNavmesh.cs" />
     <Compile Include="Assets\Editor\ILRuntimeEditor\ILRuntimeEditor.cs" />
     <Compile Include="Assets\Editor\ObjectManagerToolsEditor\ObjectManagerToolsWindow.cs" />
     <Compile Include="Assets\Editor\ReferenceCollectorEditor\ReferenceCollectorEditor.cs" />