duck

duck

Nov 1st, 2010
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.16 KB | None | 0 0
  1.  
  2.        
  3.     if (Physics.Raycast(camera.ScreenPointToRay(Input.mousePosition), out hit))
  4.     {
  5.        
  6.         MeshCollider meshCollider = hit.collider as MeshCollider;
  7.         if (meshCollider == null || meshCollider.sharedMesh == null)
  8.         {
  9.                 return;
  10.         }
  11.                
  12.         Mesh mesh = meshCollider.sharedMesh;
  13.         int[] triangles = mesh.triangles;
  14.            
  15.         int v0 = triangles[hit.triangleIndex * 3 + 0];
  16.         int v1 = triangles[hit.triangleIndex * 3 + 1];
  17.         int v2 = triangles[hit.triangleIndex * 3 + 2];
  18.  
  19.         List<int> newTriangles = new List<int>();
  20.  
  21.         for (int i = 0; i < triangles.Length/3; ++i)
  22.         {
  23.             c0 = triangles[i*3 + 0];
  24.             c1 = triangles[i*3 + 1];
  25.             c2 = triangles[i*3 + 2];
  26.            
  27.             int count = 0;
  28.             if (c0 == v0 || c0 == v1 || c0 == v2) { count++; }
  29.             if (c1 == v0 || c1 == v1 || c1 == v2) { count++; }
  30.             if (c2 == v0 || c2 == v1 || c2 == v2) { count++; }
  31.            
  32.             if (count == 2)
  33.             {
  34.                 // it's a neighbouring triangle!
  35.             }
  36.         }
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment