Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (Physics.Raycast(camera.ScreenPointToRay(Input.mousePosition), out hit))
- {
- MeshCollider meshCollider = hit.collider as MeshCollider;
- if (meshCollider == null || meshCollider.sharedMesh == null)
- {
- return;
- }
- Mesh mesh = meshCollider.sharedMesh;
- int[] triangles = mesh.triangles;
- int v0 = triangles[hit.triangleIndex * 3 + 0];
- int v1 = triangles[hit.triangleIndex * 3 + 1];
- int v2 = triangles[hit.triangleIndex * 3 + 2];
- List<int> newTriangles = new List<int>();
- for (int i = 0; i < triangles.Length/3; ++i)
- {
- c0 = triangles[i*3 + 0];
- c1 = triangles[i*3 + 1];
- c2 = triangles[i*3 + 2];
- int count = 0;
- if (c0 == v0 || c0 == v1 || c0 == v2) { count++; }
- if (c1 == v0 || c1 == v1 || c1 == v2) { count++; }
- if (c2 == v0 || c2 == v1 || c2 == v2) { count++; }
- if (count == 2)
- {
- // it's a neighbouring triangle!
- newTriangles.Add(i);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment