Ich versuche, die Position eines Rahmens so zu ändern, dass er gerade über dem oberen Bildschirmrand liegt. Ich tat dies, indem ich den oberen Teil des Bildschirms nahm und dann die Hälfte des Maßstabs des Objekts hinzufügte (da es in der Mitte zentriert ist). Wenn ich das mache, ändert sich nichts. Ich habe die Koordinaten ausgedruckt und es steht geschrieben, dass es sich bewegt hat, aber es hat nicht funktioniert. Hier ist mein Code (von der Start() -Methode in der WallScalar-Klasse).Unity Transform-Position ändert nicht die Position
Hinweis: Der folgende Code ist der einzige Code in der WallScalar Klasse, dieses Skript in der "Top" Gameobject angewandt wird.
transform.position =
new Vector3(0, Camera.main.orthographicSize + (transform.localScale.y/2), 1);
print("yCoor: " + transform.position.y);
Da das Objekt eine Skala von eins hat, und die Oberseite ist bei y = 5 ist, kann das Objekt sollte bei y = 5.5f platziert. Mit dieser Druckanweisung sagt es, dass es bei y = 5.5f ist, aber es bewegte sich nicht auf meinem Bildschirm. Hier ist ein Bild für weitere Informationen:
Wie Sie sehen können, sie sagt, es zu Ycoor = 5.5f verschoben wurde, aber es hat nicht, denn wenn ich manuell 5.5 für y eingeben, ist es nicht sichtbar, es ist nur vom Bildschirm entfernt. Jede Hilfe mit dem herauszufinden würde sehr geschätzt werden.
Update: Wenn ich eine print-Anweisung setzen wie
print("yCoorU: " + transform.position.y);
In meiner Update-Methode, es liest y 5 =, so dass es etwas zwingt zurück 5, sondern weiß, dass nichts anderes jeden Anruf hat zum "Top" GameObject, auf das das Skript angewendet wird.
hat. Was macht das Wandskalarskript? Vielleicht bewegt es deine Wand zurück auf 5? –
@UriPopov Ich werde bearbeiten und klären, das ist, wo der Code, den Sie oben sehen, lebt. – Luke
Wie groß ist Ihre orthographische Kamera? –