Legacy Documentation: Version 4.6.2
Language: English
  • C#
  • JS
  • Boo

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

RaycastHit.triangleIndex

public var triangleIndex: int;

Description

The index of the triangle that was hit.

Triangle index is only valid if the collider that was hit is a MeshCollider.

	// Attach this script to a camera and it will
	// draw a debug line triangle triangle
	// at the triangle where you place the mouse.
	function Update () {
		// Only if we hit something, do we continue
		var hit : RaycastHit;
		if (!Physics.Raycast (camera.ScreenPointToRay(Input.mousePosition), hit))
			return;

// Just in case, also make sure the collider also has a renderer // material and texture var meshCollider = hit.collider as MeshCollider; if (meshCollider == null || meshCollider.sharedMesh == null) return;

var mesh : Mesh = meshCollider.sharedMesh; var vertices = mesh.vertices; var triangles = mesh.triangles;

// Extract local space vertices that were hit var p0 = vertices[triangles[hit.triangleIndex * 3 + 0]]; var p1 = vertices[triangles[hit.triangleIndex * 3 + 1]]; var p2 = vertices[triangles[hit.triangleIndex * 3 + 2]];

// Transform local space vertices to world space var hitTransform : Transform = hit.collider.transform; p0 = hitTransform.TransformPoint(p0); p1 = hitTransform.TransformPoint(p1); p2 = hitTransform.TransformPoint(p2);

// Display with Debug.DrawLine Debug.DrawLine(p0, p1); Debug.DrawLine(p1, p2); Debug.DrawLine(p2, p0); }