je tente depuis quelques temps de créer un petit FPS pour le fun, mais la je suis un peu bloqué: j'ai un pistolet, qui, quand on clique gauche, tire.
Quand il tire, il instantie une balle et lui assigne un velocity, puis la détruit au bout d'un certain temps. Le problème, c'est que si plusieurs balles co-existent, le Destroy n'en détruit qu'une. Ce que je voudrai, c'est qu'elle soit toute traitées individuellement.
Merci d'avance a mon éventuel futur bienfaiteur !
Le code (avec précisé en commentaire les trucs que j'ai déjà tentés):
Code : Tout sélectionner
#pragma strict
var Vitesse:float;
private var speed:float;
var balle:GameObject;
function Start () {
}
function Update () {
speed = Vitesse * Time.deltaTime * 100; //défini la vitesse réelle de la balle a partir de Vitesse, réglé depuis l'inspecteur
if(Input.GetKey(KeyCode.Mouse0) && !GetComponent.<AudioSource>().isPlaying){
GetComponent.<AudioSource>().Play(); //joue le seul son que j'ai dans le composant: un tir
var bullet : GameObject = Instantiate(balle,transform.position,transform.rotation); //instantie la balle
bullet.transform.velocity = transform.TransformDirection(Vector3 (-speed, 0, 0)); //donne un velocity a la balle
//Destroy(GameObject.Find("Bullet(Clone)"),5); ne détruit qu'une seule balle
//Destroy(bullet,5); aucune erreur, mais ne fonctionne pas
}
/*if(GameObject.Find("Bullet(Clone)")){
Destroy(GameObject.Find("Bullet(Clone)"), 5);
}*/ ne détruit qu'une seule balle
}