public void Combine(MeshColliderGroup meshGroup, MeshColliderLookup colliderLookup) { for (int i = 0; i < meshGroup.data.Count; i++) { MeshColliderInstance instance = meshGroup.data[i]; Matrix4x4 matrix4x = Matrix4x4.TRS(instance.position, instance.rotation, instance.scale); int count = vertices.Count; for (int j = 0; j < instance.data.triangles.Length; j++) { triangles.Add(count + instance.data.triangles[j]); } for (int k = 0; k < instance.data.vertices.Length; k++) { vertices.Add(matrix4x.MultiplyPoint3x4(instance.data.vertices[k])); } for (int l = 0; l < instance.data.normals.Length; l++) { normals.Add(matrix4x.MultiplyVector(instance.data.normals[l])); } colliderLookup.Add(instance); } }
public void Combine(MeshColliderGroup meshGroup, MeshColliderLookup colliderLookup) { for (int index1 = 0; index1 < meshGroup.data.Count; ++index1) { MeshColliderInstance instance = meshGroup.data[index1]; Matrix4x4 matrix4x4 = Matrix4x4.TRS(instance.position, instance.rotation, instance.scale); int count = this.vertices.Count; for (int index2 = 0; index2 < instance.data.triangles.Length; ++index2) { this.triangles.Add(count + instance.data.triangles[index2]); } for (int index2 = 0; index2 < instance.data.vertices.Length; ++index2) { this.vertices.Add(((Matrix4x4) ref matrix4x4).MultiplyPoint3x4(instance.data.vertices[index2])); } for (int index2 = 0; index2 < instance.data.normals.Length; ++index2) { this.normals.Add(((Matrix4x4) ref matrix4x4).MultiplyVector(instance.data.normals[index2])); } colliderLookup.Add(instance); } }