2016-05-11 10 views
0

Ich versuche, nur die Pong-Paddel in meinem Pong-Spiel an den oberen Rand des Bildschirms und unten gehen Sie dann zu stoppen. Ich dachte, ich würde die YClamp-Variable auf die Kameragröße einstellen - die Höhe der Textur geteilt durch 2. Dies funktioniert jedoch überhaupt nicht. Die Spitze sollte in etwa mit meinem Seitenverhältnis sein Ich arbeite mit, zwischen 3,2 und 3. Hier ist der Code, den ich zu erreichen bin versucht, dies mit:Unity Klemmprobleme

renderer = GetComponent<SpriteRenderer>(); 

    yClamp = Mathf.Abs(Camera.main.orthographicSize - 
     ((renderer.sprite.textureRect.height/renderer.sprite.pixelsPerUnit)/2f)); 

jedoch nur dies ermöglicht es mir, auf 1,43 und zu gehen - 1.43. Ich kann nicht herausfinden, warum das nicht funktionieren wird. Die ganze Logik ist da. Das Paddel beginnt bei (0,0), also sehe ich nicht, wo meine Logik falsch ist.

Jede Hilfe mit diesem wird sehr geschätzt!

Anmerkung: Um die Sache zu klären, sollte die Klammer zwischen ungefähr -3,2 und 3,2 liegen. Ich brauche jedoch eine Formel dafür, weil ich mich mit vielen Auflösungen beschäftigen werde. Dies ist mein Debugzustand.

Antwort

1

Ich sehe nicht, warum es nicht funktionieren würde.

Hier ist, was würde ich überprüfen

  • Sie übernehmen in y platziert werden = 0 koordinieren. Ist es richtig ?
  • Kamera orthoSize ist die Hälfte der Ansichtsgröße (aber ich denke, Sie verwenden es richtig)
  • gibt renderer.sprite.textureRect.height das richtige Pixel Ergebnis?
  • Was ist, wenn Sie stattdessen Sprite.bounds verwenden?

Sie haben nur wenige Variablen, es sollte nicht schwierig sein, herauszufinden, welche nicht den erwarteten Wert enthält. Wenn dies nicht funktioniert, können Sie den Wert jeder Variablen (Höhe, Kameragröße, Pixel pro Einheit)

eingeben