J'essaie de faire pivoter la caméra autour d'un cube avec la fonction LookAt() et en utilisant l'accéléromètre dans un appareil Android. Ça marche bien. Mais je veux que la rotation s'arrête à une certaine valeur dans l'axe Y. Voici mon code à ce jour:Unity caméra tournante avec accéléromètre
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);
}
}
Le problème est que lorsque l'appareil atteint la marge supérieure, je ne peux pas commencer à tourner à nouveau dans le sens opposé. J'ai essayé avec une variable d'indicateur mais ne peux pas obtenir la logique de programme correcte (essayé différent if/else). Toute suggestion sur la façon de réaliser cela?