Creare Videogiochi - Game Developer
Collison! - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia)
+--- Forum: Unity3D Discussioni Generali (https://www.making-videogames.net/giochi/Forum-Unity3D-Discussioni-Generali)
+--- Discussione: Collison! (/thread-Collison)



Collison! - Daxi - 29-05-2011

Ecco il mio script:
Codice:
var ach_count = 0;
private var all_done = false;
var dissolvente : Transform;

function OnControllerColliderHit(hit : ControllerColliderHit) //se colpisco l'oggetto
{
    if(hit.gameObject.tag == "Im_an_achiev")
    {
        ach_count += ach_count + 1; // ach_count vale 1 unità in più (se era 1 ora è 2 ecc)
        Destroy(hit.gameObject); // distrugge la sfera con cui sono andato a contatto
    }
}

function Update()
{
    print ("Sfere prese: "+ach_count);
    if(ach_count == 4) //se ho preso 4 achevements
    {
        Application.LoadLevel(1); //CArica il Prossimo Livello
        print ("Molto Bene!"); //messaggio
        //var des = Instantiate(dissolvente, gameObject.transform.position, Quaternion.identity); //Il verme si dissolve - funzione inutilizzata
    }
}

solo che c'è un problema coi collider: se colpisco la sfera (l'achievements) di striscio mi attribiusce 1 unità in più, se la tocco per qualche istante in più mi attribiusce di più (esempio: ho toccato UNA sfera e la funzione print nella console mi dava "sfere prese: 78")
e in più se supero le 4 sfere non cambia livello.

HELP!
Ad esempio, ho aggiunto un rigidbody alle sfere, un mi ha fatto addizionare ach_count di 1 e una di 3, quindi si è caricato il livello (1), ma io ho preso solo 2 sfere!


RE: Collison! - Daxi - 29-05-2011

Ah, e poi sapete, per caso, come caricare un livello?
Esempio: io sto nel livello 1 volgio caricare il 2. faccio Application.LoadLevel(2). Ma se io sono nel 2 e volgio caricare il 3 sempre dallo stesso script?????????


RE: Collison! - ossen97 - 29-05-2011

Per far cambiare livello dopo 4 sfere basta che al posto di
if(ach_count == 4)
Metti
if(ach_count > 3)

Per l'altro problema prova a scrivere questo:
ach_count = ach_count + 1;
Ma non penso cambi qualcosa...


RE: Collison! - Daxi - 29-05-2011

ho già prvato ach_count = ach_count + 1;, infatti l'ho modificato da solo!


Per i livelli?


RE: Collison! - ossen97 - 29-05-2011

Per i livelli ti ho risposto sopra... hai provato come ti ho detto io?


RE: Collison! - Daxi - 29-05-2011

sì ho provao!
comunque io intendevo l'altro porblema dei livelli!
killerz mi ha detto d i fare Application.LoadLevel(Application.loadedLevel+1);


RE: Collison! - ossen97 - 29-05-2011

Ah scusa non avevo letto il doppio post...