| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /************************************************
- * 文件名: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");
- }
- }
|