Exemplo n.º 1
0
 protected void Awake()
 {
     this.meshCollider = (MeshCollider)((Component)this).GetComponent <MeshCollider>();
     this.meshData     = new MeshColliderData();
     this.meshGroup    = new MeshColliderGroup();
     this.meshLookup   = new MeshColliderLookup();
 }
Exemplo n.º 2
0
 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);
     }
 }