public MeshData() { terrainFilter = new FilterMeshData(); terrainCollider = new ColliderMeshData(); supportFilter = new FilterMeshData(); supportCollider = new ColliderMeshData(); }
// void Update() // { // if(mesh != null) // { // Graphics.DrawMesh(mesh,transform.position,Quaternion.identity,chunkMaterial,layerMask); // } // } public void SetColliderMeshData(ColliderMeshData colliderMeshData) { // Mesh colMesh = collider.sharedMesh; // if (colMesh == null) // { // colMesh = MeshMemoryCache.Instance.GetMesh(); // } // else // { // colMesh.Clear(); // } // colMesh.vertices = colliderMeshData.colVertices.ToArray(); // colMesh.triangles = colliderMeshData.colTriangles.ToArray(); // colMesh.RecalculateNormals(); // colMesh.Optimize(); // colMesh.MarkDynamic(); // collider.sharedMesh = null; // collider.sharedMesh = colMesh; BoxColliderAdd(colliderMeshData); }
private void BoxColliderAdd(ColliderMeshData colliderMeshData) { BoxCollider[] colliders = this.GetComponents <BoxCollider>(); int i; for (i = 0; i < colliderMeshData.boxCenters.Count; i++) { BoxCollider col; if (i < colliders.Length) { col = colliders[i]; } else { col = this.gameObject.AddComponent <BoxCollider>(); } col.center = colliderMeshData.boxCenters[i]; col.size = colliderMeshData.boxSizes[i]; } for (int j = i; j < colliders.Length; j++) { GameObject.Destroy(colliders[j]); } }