I. Navigation▲
II. Vidéo▲
Cliquez pour lire la vidéo
III. Exercice▲
Vous pouvez lire l'énoncé de l'exercice ici.
IV. Solution▲
La solution utilise plusieurs éléments vus dans les cours précédents :
IV-A. Orientation de la tourelle▲
La première partie de la fonction Update() permet de gérer l'orientation de la tourelle.
rayMouse =
GameObject.
Find
(
"
Main
Camera
"
).
camera.
ScreenPointToRay
(
Input.
mousePosition);
if
(
Physics.
Raycast
(
rayMouse,
hit))[
if
(
hit.
transform/
name =
=
"
Place
"
){
positionToLook =
hit.
point;
}
}
directionToLook =
positionToLook -
transform.
position;
transform.
rotation =
Quaternion.
LookRotation
(
-
directionToLook);
On crée un rayon, provenant de la caméra et allant en direction de la souris, avec la fonction ScreenPointToRay(). Ensuite, il suffit de savoir si le rayon touche un objet, dans notre cas le sol appelé « Place », et à quel endroit. Ce point de collision entre le rayon et le sol est ensuite utilisé pour déterminer la direction de la tourelle.
IV-B. Tir de la tourelle▲
La seconde partie de la fonction Update() permet de gérer le tir de la tourelle.
if
(
Input.
GetMouseButtonDown
(
0
)){
var
ball:
GameObject =
Instantiate
(
bullet,
positionBullet.
position,
positionBullet.
rotation);
var
particle:
GameObject =
Instantiate
(
explodeParticle,
positionBullet.
position,
positionBullet.
rotation);
ball.
renderer.
material.
color =
Color
(
Random.
value,
Random.
value,
Random.
value);
ball.
rigidbody.
AddForce
(
positionBullet.
forward *
shotSpeed *
Time.
deltaTime);
audio.
Play
(
);
Destroy
(
particle,
1
);
Destroy
(
ball,
3
)
}
Le test vérifie si le bouton de la souris est appuyé. Ensuite, deux objets sont créés, le premier : la balle propulsée, le second : les particules. La couleur de la balle est modifiée aléatoirement. Une force lui est ajoutée pour la propulser dans la direction du canon de la tourelle. Finalement, un son est joué. Les deux dernières lignes permettent la destruction après une et trois secondes pour les particules et la balle, respectivement.
La destruction permet de ne pas surcharger la machine avec des objets inutiles.
V. 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.
VI. 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.