Selecting a single polygon / face at runtime

I'm wondering if there is a more direct way to select a single polygon/face at runtime other than (touch, highlight poly):

1) raycast mouse to poly

2) search positions to find which set of vertices that's closest to

3) convert vertices to nearest face

4) "highlight" the poly/face to show that it's been selected

If you use a mesh collider, then you have access to RaycastHit.triangleIndex. Highlighting the selected face could still have some difficulty, though. Unless you're sure that every single vertex in the mesh is split, it would probably be easier to construct a new mesh that consists of a single face, and position it in the same spot as the selected face.