Navigation▲
Tutoriel précédent : les quaternions |
Tutoriel suivant : le lancer de rayon |
I. Vidéo▲
Cliquez pour lire la vidéo
II. Ce qu'il faut retenir▲
II-A. Instancier des objets▲
À partir d'un script, nous allons pouvoir créer de nouvelles instances de nos objets.
II-A-1. Les préfabriqués (prefab)▲
Les préfabriqués apparaissent dans le panneau « projects ». Un préfabriqué permet de sauvegarder la configuration spécifique d'un objet et de le rappeler rapidement pour créer un objet ayant les mêmes propriétés.
II-A-2. Créer des objets▲
Grâce aux préfabriqués, nous pouvons créer des objets ayant certaines propriétés spécifiques. Pour cela, nous écrivons un script qui va générer ces nouveaux objets. Le script est attaché à un « GameObject » vide.
Pour créer un nouvel objet, on utilise la fonction Instantiate(). Afin de ne pas créer les éléments trop rapidement, nous faisons un chronomètre :
#pragma strict
private var delay
:
float =
0
.
5
;
private var timeCurrent
:
float =
0
.
0
;
function Start
(
) {
}
function Update
(
) {
if (
timeCurrent+
delay <
Time.
fixedTime) {
// Code qui ne s'execute que tous les 'delay'
timeCurrent =
Time.
fixedTime;
}
}
Time.fixedTime est une variable contenant le temps actuel depuis le début du jeu.
Maintenant, nous pouvons gérer l'instanciation :
II-A-3. Détruire des objets▲
Il est nécessaire de détruire les objets que nous avons créés afin de ne pas surcharger le jeu. En effet, chaque objet créé prend du temps de calcul dans Unity 3D et, à la longue, pourrait provoquer des ralentissements lorsqu'ils deviennent trop nombreux.
Pour cela, on utilise la fonction Destroy() :
#pragma strict
private var delay
:
float =
0
.
5
;
private var timeCurrent
:
float =
0
.
0
;
var bullet
:
GameObject;
function Start
(
) {
}
function Update
(
) {
if (
timeCurrent+
delay <
Time.
fixedTime) {
var tempBullet =
Instantiate
(
bullet,
transform.
position,
transform.
rotation);
Destroy
(
tempBullet,
2
);
timeCurrent =
Time.
fixedTime;
}
}
II-B. Générer un nombre aléatoire▲
Pour générer un nombre aléatoire, vous devez utiliser la classe Random :
Debug.Log(Random.value);
III. 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.
IV. 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.
Navigation▲
Tutoriel précédent : les quaternions |
Tutoriel suivant : le lancer de rayon |