Gibt es eine Möglichkeit, RectTransform in den ViewPort der Kamera in unity3d zu transportieren?Gibt es eine Möglichkeit, RectTransform in den ViewPort der Kamera in unity3d zu transportieren?
Ich habe versucht, es mehrmals zu tun, aber es hat kein Ergebnis. Ich möchte das Ansichtsfenster der Kamera genau in die Grenzen der richtigen RectTransform stellen.
Es ist mein Code:
public static Rect RectTransformToCameraViewport(RectTransform rectTransform)
{
float leftDownCornerX = (rectTransform.anchoredPosition.x - rectTransform.sizeDelta.x/2);
float leftDownCornerY = (rectTransform.anchoredPosition.y - rectTransform.sizeDelta.y/2);
Vector3 leftCorner = new Vector3(leftDownCornerX, leftDownCornerY, 0);
Vector3 viewPortLeftCorner = new Vector3(leftCorner.x/Screen.width, leftCorner.y/Screen.height, 0);
float viewportWidth = Mathf.Abs(rectTransform.sizeDelta.x/Screen.width);
float viewportHeight = Mathf.Abs(rectTransform.sizeDelta.y/Screen.height);
return new Rect(0.5f + viewPortLeftCorner.x, 0.5f + viewPortLeftCorner.y, viewportWidth, viewportHeight);
}
Aber wie ich schon sagte, bevor es funktioniert nicht.
Edit 1:
Es funktioniert, aber es ist nicht auf zwei diff Maschinen arbeiten, wo ich arbeite. Vielleicht gibt es etwas mit einem dieser Berichte.
Vielleicht haben Sie dieses Problem bereits gelöst?
welchen Kameratyp verwenden Sie? ist es Ortho oder Perspektive? –
Ich benutze perspektivische Kamera –
es ist unglaublich schwer, dies zu tun. – Fattie