I. Navigation▲
Tutoriel précédent : lire un son |
Tutoriel suivant : les particules |
II. Vidéo▲
Cliquez pour lire la vidéo
III. Ce qu'il faut retenir▲
III-A. Souris sur des GameObjects▲
III-A-1. Explication▲
La gestion de la souris sur des éléments de la scène n'est pas immédiate. En effet, la souris est en 2D (un point sur l'écran), alors que les objets dans le monde sont en 3D. Plus précisément, la souris peut avoir des coordonnées en pixels comprises entre 0 et la largeur de la fenêtre (et de même pour la hauteur). Par contre, les objets dans la scène ont des coordonnées pouvant aller de moins l'infini à plus l'infini et cela, pour les trois axes. Il faut donc réussir à interpréter les coordonnées de la souris (qui sont en 3D) pour les retranscrire dans la scène (qui est en 3D) afin de savoir sur quel objet le joueur clique réellement.
Bien que les objets sont en 3D dans le monde, ils sont affichés en 2D à l'écran. C'est le travail de la caméra. La classe Camera d'Unity 3D nous propose de faire l'inverse : créer un rayon à partir d'une position à l'écran. Le rayon débutera à la position de la caméra pour aller vers l'avant. Si ce rayon touche un objet, alors, le clic de la souris s'est effectué sur cet objet.
La fonction est ScreenPointToRay().
III-A-2. Créer un rayon par rapport à la position de la souris▲
Pour créer le rayon, nous allons utiliser la fonction ScreenPointToRay() de la classe Camera. Celle-ci nécessite les coordonnées sur l'écran à partir desquelles le rayon va démarrer. Pour obtenir les coordonnées de la souris, nous utilisons la classe Input.
III-A-3. Détecter si un clic est effectué sur un objet▲
IV. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum, ou encore, poser vos questions dans le forum Unity.
V. Remerciements▲
Nous remercions « ToutApprendre » pour l'élaboration et la réalisation de ces vidéos. Vous pouvez retrouver sa chaîne YouTube en suivant ce lien.
VI. Navigation▲
Tutoriel précédent : lire un son |
Tutoriel suivant : les particules |