So habe ich das folgende Problem: Ich habe eine Welt Raum Leinwand nach einem Pfeil, der sich um den Bildschirm bewegt. Die Leinwand selbst ist nur ein Kind des Pfeils. Das Problem ist, dass manchmal, wenn der Pfeil auf etwas am Rand des Bildschirms zeigt, Teile der Leinwand vom Bildschirm verschwinden. Ich möchte Code schreiben, der den gesamten Canvas jederzeit im Ansichtsfenster hält. Ich habe online eine Lösung gefunden, aber dadurch bleibt der Drehpunkt des Objekts innerhalb der Kameragrenzen und nicht das gesamte Objekt. Ich kann einfach nicht herausfinden, wie man das ganze Objekt innerhalb der Kameragrenzen hält. Hier ist der Code, ich habe:Behalten Sie ein Objekt (Welt-Raum-Leinwand) immer im Kamera-Ansichtsfenster
void LateUpdate()
{
transform.rotation = rotation;// This simply keeps the objects original rotation independant from the parent
Vector3 pos = Camera.main.WorldToViewportPoint(transform.position);
pos.x = Mathf.Clamp01(pos.x);
pos.y = Mathf.Clamp01(pos.y);
transform.position = Camera.main.ViewportToWorldPoint(pos);
}
gut, da es ein RectTransform es ist ein Build es GetWorldCorners-Methode, um die 4 Ecken der Rect-Transformation zu erhalten. Was ich nicht herausfinden kann ist, wie man überprüft, ob sie sich im Ansichtsfenster befinden und wie man das Objekt danach bewegt. –
@UriPopov Ich habe meine Antwort bearbeitet – TheDjentleman