hum,
il te faut effectivement des mesh collider sur les partie de ton objet.
Ensuite le plus simple c'est lorsque tu cliques de lancer un Raycast depuis la position de ta souris vers ton objet, et de retourner le nom de l'objet touché.
Sinon tu peux mettre un script sur chaque objet (si tu n'en a pas 50 ça devrait pas être trop long) qui implémente la fonction OnMouseDown et qui appelle une fonction sur ton script principal avec son nom en paramètre.
En sachant que le OnMouseDown fait un Raycast pour toi, du coup si tu as 50 objets qui implémente la fonction OnMouseDown tu as 50 Raycast à chaque fois, ça peut être un peu lourd.
Si tu optes pour la 1ere solution, il faut convertir dans un 1er temps la position de la souris à l'écran vers une position dans la scène avec Camera.main.ScreenToWorldPoint (de mémoire), la doc fournie pas mal d'exemples en C# et en JS.
Une fois que tu as ton point dans l'espace, tu peux lancer un raycast (Physics.Raycast) vers la direction de ton modèle.
Tu verra c'est pas évident, surtout si tu n'a jamais fait, tu peux poser des questions ici si tu as besoin d'aide, mais internet est rempli d'exemple sur les raycast avec Unity, tu devrais t'en sortir
![Dan.San :P](./images/smilies/10.gif)