2016-04-06 14 views
0

Nur mein Spiel in Unity Editor getestet und alles funktioniert gut:Unity Android - Einfache if-Anweisung nicht funktioniert

void Update() { 

     if (transform.position.y < -3f) { 

      Debug.Log ("game over!"); 
      prepareGame(); 


     } 

    } 

Alle fein das funktioniert, wenn ausgeführt wird, wenn y unter -3 aber ...

Wenn ich das Spiel exportieren und auf Android testen, wird die if-Anweisung nie aufgerufen!

Ich entdrossel die Droid-Version und der Wert Y ist unter -3 aber immer noch, die wenn nie aufgerufen wird und das Spiel nie endet ... warum?

+0

ich Sie verwenden versuchen 'fixupdate' statt Update kann vielleicht denken, zu verknüpfen. – tim

+0

vielleicht ist Ihr PrepareGame() Code schlecht. Poste den Code in dieser Funktion – Programmer

+0

es funktioniert im Editor ... und auch auf dem Bluestacks Android Simulaltor, aber auf dem tatsächlichen Gerät ... nein ... https: //www.dropbox.com/s/bnmxhl7ewb456eb/prepareCode. txt? dl = 0 – mirzahat

Antwort

1

Es ist die beste Vorgehensweise, Float-Werte nicht zu vergleichen.

Lösungen:

1) Verwendung Mathf.Approximately (float a, b float) link

2) Verwenden Mathf.RoundToInt (float f) link

3) Verwenden Trigger. Dies könnte mehr sein, als Sie für diese Lösung benötigen

Ich habe nicht genug rep # 3, aber Lookup Collider.OnTriggerEnter (Collider)

+0

Vielen Dank Ich benutze Int, aber es funktioniert immer noch nicht beim Vergleichen von Zahlen wie 3 <-3 ... – mirzahat

Verwandte Themen