Esempio n. 1
0
 /// <summary>
 /// Clears grid / node graph, resets mesh filter / collider
 /// </summary>
 public void Clear()
 {
     grid  = null;
     graph = null;
     GetComponent <MeshFilter>().sharedMesh   = null;
     GetComponent <MeshCollider>().sharedMesh = null;
 }
Esempio n. 2
0
 /// <summary>
 /// Restores grid / graph / navmesh from given data
 /// </summary>
 /// <param name="data"></param>
 public void Deserialize(ChunkData data)
 {
     if (data.gridNodes?.Length > 0)
     {
         grid = new Grid(this, data.gridNodes, gridSettings.step);
     }
     if (data.graphNodes?.Count > 0)
     {
         graph = new MeshVertexGraph(this, data.graphNodes);
     }
     if (data.triangles?.Length > 0)
     {
         var mesh = new Mesh();
         mesh.vertices  = data.vertices;
         mesh.triangles = data.triangles;
         mesh.RecalculateNormals();
         mesh.Optimize();
         GetComponent <MeshFilter>().sharedMesh   = mesh;
         GetComponent <MeshCollider>().sharedMesh = mesh;
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Creates node graph using mesh from attached Mesh filter and bounds
 /// </summary>
 public void GenerateGraph()
 {
     graph = new MeshVertexGraph(GetComponent <MeshFilter>(), this);
 }