ExportNavmesh.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /************************************************
  2. * 文件名:ExportNavMesh.cs
  3. * 描述:导出NavMesh数据给服务器使用
  4. * 创建人:陈鹏
  5. * 创建日期:20160926
  6. * http://blog.csdn.net/huutu/article/details/52672505
  7. * ************************************************/
  8. using UnityEngine;
  9. using UnityEditor;
  10. using System.IO;
  11. using UnityEngine.AI;
  12. using UnityEngine.SceneManagement;
  13. public class ExportNavMesh
  14. {
  15. [MenuItem("NavMesh/Export")]
  16. static void Export()
  17. {
  18. Debug.Log("ExportNavMesh");
  19. NavMeshTriangulation tmpNavMeshTriangulation = NavMesh.CalculateTriangulation();
  20. //新建文件
  21. string tmpPath = Application.dataPath + "/" + SceneManager.GetActiveScene().name + ".obj";
  22. StreamWriter tmpStreamWriter = new StreamWriter(tmpPath);
  23. //顶点
  24. for (int i = 0; i < tmpNavMeshTriangulation.vertices.Length; i++)
  25. {
  26. tmpStreamWriter.WriteLine("v " + tmpNavMeshTriangulation.vertices[i].x + " " + tmpNavMeshTriangulation.vertices[i].y + " " + tmpNavMeshTriangulation.vertices[i].z);
  27. }
  28. tmpStreamWriter.WriteLine("g pPlane1");
  29. //索引
  30. for (int i = 0; i < tmpNavMeshTriangulation.indices.Length;)
  31. {
  32. tmpStreamWriter.WriteLine("f " + (tmpNavMeshTriangulation.indices[i] + 1) + " " + (tmpNavMeshTriangulation.indices[i + 1] + 1) + " " + (tmpNavMeshTriangulation.indices[i + 2] + 1));
  33. i = i + 3;
  34. }
  35. tmpStreamWriter.Flush();
  36. tmpStreamWriter.Close();
  37. Debug.Log("ExportNavMesh Success");
  38. }
  39. }