alors voilà j'ai un petit souci de script JS pour collecter des items.
J'ai mis des cubes, leur ai donné une box collider etc, puis j'ai glissé sur le Player le script suivant qui est sensé faire ceci :
- lorsqu'on entre dans le box collider une image apparait ("item machin")
- lorsqu'on en sort sans prendre l'item, l'image disparait.
- Si une fois dedans on appuie sur la barre d'espace l'item disparait et l'image aussi.
- Le score est incrémenté de 1.
Seulement...
- l'image ne disparait pas toujours lorsque je prends l'item...
- le score s'incrémente de 2 points aulieu de 1...
Quelqu'un pourrait-il voir où ça pêche svp?... Car je ne vois pas x/
Voici le script (désolé mais hm... je ne vois pas de mise en page pour le script ) :
Code : Tout sélectionner
#pragma strict
//variables pour le premier item
var score1 : int;
var zeinfo1 : Texture;
var pickupson1:AudioClip;
private var guiShow1 : boolean = false;
public var pochette1 : UnityEngine.UI.Text;
//variables pour le second item
var score2 : int;
var zeinfo2 : Texture;
var pickupson2:AudioClip;
private var guiShow2 : boolean = false;
public var pochette2 : UnityEngine.UI.Text;
//lorsqu'on entre et qu'on reste dans le trigger de l'item
function OnTriggerStay(other:Collider) {
if (other.tag == "item1") {
guiShow1 = true;
if (Input.GetKeyUp("space") && other.gameObject.tag == "item1") {
GetComponent.<AudioSource>().PlayOneShot(pickupson1);
Destroy(other.gameObject, 0.4);
score1 ++;
pochette1.text = score1.ToString();
guiShow1 = false;
}
}
if (other.tag == "item2") {
guiShow2 = true;
if (Input.GetKeyUp("space") && other.gameObject.tag == "item2") {
GetComponent.<AudioSource>().PlayOneShot(pickupson2);
Destroy(other.gameObject, 0.4);
score2 ++;
pochette2.text = score2.ToString();
guiShow2 = false;
}
}
}
//-------------------------------------------------------------------------------------------------
function OnTriggerExit (other : Collider) {
//if(other.tag == "item1") {
guiShow1 = false;//}
//if(other.tag == "item2") {
guiShow2 = false;//}
}
//-------------------------------------------------------------------------------------------------
function OnGUI() {
if(guiShow1 == true) {
GUI.DrawTexture(Rect((Screen.width / 2)-100, (Screen.height / 2)-100, 256, 64), zeinfo1);
}
if(guiShow2 == true) {
GUI.DrawTexture(Rect((Screen.width / 2)-100, (Screen.height / 2)-100, 256, 64), zeinfo2);
}
}