Après plusieurs recherche sur le net et plusieurs visionnage de vidéo, je ne trouve pas la solution pour avoir mon script fonctionnel
Voila le principe : J'ai un canon sur une île, une tour sur une autre île, le but étant que quand le boulet du canon touche la tour.
Je veut que quand le boulet touche la tour une premiere fois, il lui enlève 1 point de vie et lance l'effet1. Je veut qu'au 2eme boulet de canon la tour perde encore 1 point de vie et lance l'effet2 enfin je veut que le troisième boulet lance l'effet3 et détruise la tour.
Pour plus de facilité j'ai tague "red" l'objet dont je veut qu'il soit transpercé
Après plusieurs tentative j'ai le code suivant en javascript
Code : Tout sélectionner
var objetInfo : GameObject;
var effet1 : Transform;
var effet2 : Transform;
var effet3 : Transform;
var vie : int = 3;
function OnTriggerEnter(objetInfo : Collider){
if(objetInfo.gameObject.tag == "red") {
if(vie == 3)
Instantiate(effet1, transform.position, transform.rotation);
vie -= 1;
print (vie);
}
if(objetInfo.gameObject.tag == "red") {
if(vie == 2)
Instantiate(effet2, transform.position, transform.rotation);
vie -= 1;
print (vie);
}
if(objetInfo.gameObject.tag == "red") {
if(vie == 1)
Instantiate(effet3, transform.position, transform.rotation);
vie = 0;
Destroy(...)
print ("Vous avez gagné !");
}
}
Au niveau de la scene, le boulet déclenche bien la perte de 1 point de vie, et il déclenche aussi l'effet1 qui est un effet de fumée.
En revanche lorsque je tire le second boulet, il n'y a pas de perte de point de vie et l'effet2 qui est un effet de flamme ne se lance pas.
De plus, j'ai du mal a savoir comment indiquer a mon script que je veut qu'il détruise la tour après le troisième boulet d'ou le Destroy(...)
Je travaille depuis peu sur Unity
J'imagine donc que le script doit être tout simple et pourtant je suis dessus depuis un bon moment
A défaut d'y arriver je me tourne vers vous. D'avance Merci !
CreamyDelux