Is it possible to detect the vertex hit and its neighbors by RaycastHit?
Loius is almost right. It’s the triangle index. By multiplying it by 3 you get the index of the first vertex index. It should be like this:
// Should work in C# and UnityScript
// ...
var MC = hit.collider as MeshCollider;
if (MC != null)
{
var mesh = MC.sharedMesh;
var index = hit.triangleIndex * 3;
var hit1 = mesh.vertices[mesh.triangles[index ]];
var hit2 = mesh.vertices[mesh.triangles[index + 1]];
var hit3 = mesh.vertices[mesh.triangles[index + 2]];
}
Those are the 3 vertices that surround the hit point.
Keep in mind that hit.triangleIndex only works with a MeshCollider. No other collider will give you that information since they are pure mathematical colliders which are not based on triangles.
RaycastHit has a property called triangleIndex that tells you what the index of the triangle that was hit. I can’t be much more concrete about this since I still couldn’t even “hit” my procedural mesh, but that’s other story. When I have some success, if you are still doubting about this I will try to be more helpful.