2017-11-29 2 views
0

Super-grundlegende Frage, die ich scheinen kann nicht auf eine Antwort zu finden:Unity 2017: 2D-Bildschirm Herkunft

Alles, was ich getan habe, ist ein neues 2D-Einheit-Projekt erstellen und in die Szene einen einzelnen Sprit. Ich füge dem Sprite ein C# -Skript hinzu und setze seine Position auf ein neues Vector2 (0,0). Wenn es ausgeführt wird, verschiebt das Sprite seinen Mittelpunkt zur Mitte des Bildschirms, im Gegensatz zur unteren linken Ecke. Dies ist auch der Fall, wenn ich im Editor die Position des Beharrens auf 0,0 setze. Ich habe versucht, das Sprite zu einem Kind der Kamera zu machen, und ich habe versucht, WorldToScreenPoint() zu verwenden. Es ist eine Weile her, seit ich Unity benutzt habe, also muss ich etwas nicht verstehen.

Danke für die Hilfe

Edit: Wie hier vorgeschlagen ist die einzige Zeile Code in Frage, denken Sie nicht so viel Klarheit hinzufügen.

public class NewBehaviourScript : MonoBehaviour { 

// Use this for initialization 
void Start() { 
    this.transform.position = new Vector2 (0, 0); 
} 

// Update is called once per frame 
void Update() { 

} 

}

enter image description here

+1

Ohne Ihren Code, wie kann jemand Ihr Problem finden? – Programmer

+0

Mit Ihrer Bearbeitung haben Sie noch keine Frage gestellt. Was erwarten Sie? – Programmer

+0

Wenn ich richtig verstehe, muss man nur die Kamera bewegen, damit sich die Mitte der Kamera nicht in der Mitte der Welt befindet (der Ursprung). – Lestat

Antwort

0

Unity rendert auf der Grundlage der Stumpfes der Kamera, nicht eine beliebige Bildschirmpixelposition (es sei denn, Sie Stumpfes durch ein Skript so übersetzen).

Standardmäßig wird die Kamera „Blick“ auf dem Szene-Raum-Ursprung (0, 0), und wenn Sie Ihre Sprite dort setzen, natürlich wird es auf dem Bildschirm auf Spiel zentriert werden.


[EDIT]

BTW, von ...

Ich habe versucht, das Sprite ein Kind der Kamera zu machen, und ich habe WorldToScreenPoint versucht mit ().

... es scheint, dass Sie versuchen, ein Sprite irgendwo in Bezug auf die Kamera zu setzen. Wenn das für GUI ist, ist die richtige Art es zu tun nicht als ein Kind der Kamera. Verwenden Sie stattdessen einen Bildschirmbereich Canvas. Screen-Space-Leinwände arbeiten im Gegensatz zu Kameras auch auf Basis der Pixelposition! =)