Ich versuche, die Kamera um einen Würfel mit LookAt() -Funktion zu drehen und den Beschleunigungsmesser in einem Android-Gerät verwenden. Es läuft gut. Aber ich möchte, dass die Rotation bei einem Wert in der Y-Achse stoppt. Hier ist mein Code so weit:Einheit rotierende Kamera mit Beschleunigungsmesser
public Transform target; // The object to follow
public float topMargin = 0.2f; // Top rotation margin
// The position of the target
private Vector3 point;
void Start() {
point = target.transform.position;
transform.LookAt (point);
}
void Update() {
// Freeze
if (transform.rotation.y >= topMargin) {
transform.RotateAround (point, new Vector3 (0, 1, 0), 0);
}
// Freeze
else if (transform.rotation.y <= -topMargin) {
transform.RotateAround (point, new Vector3 (0, 1, 0), 0);
} else {
transform.RotateAround (point, new Vector3(0, 1, 0), Input.acceleration.x);
}
}
Das Problem ist, dass, wenn die Kamera den oberen Rand erreicht hat, ich nicht dreht wieder in die entgegengesetzte Richtung starten kann. Ich habe versucht, mit einer Flag-Variable, aber kann nicht die richtige Programmlogik (versuchte andere If/Else). Irgendwelche Vorschläge, wie man dies erreichen kann?