|
|
@@ -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");
|
|
|
+ }
|
|
|
+}
|