Je peux utiliser le code suivant pour faire pivoter un objet à l'aide d'un accéléromètre.
transform.rotation = Quaternion.LookRotation(Input.acceleration.normalized, Vector3.up);
Mais je voudrais faire pivoter un objet comme par exemple l'écran tourne - 0, 90, 180 et 360 degrés. Comment puis-je le faire avec Unity 3D?
Vous pouvez utiliser transform.rotation
comme ça:
transform.rotation = new Quaternion(rotx, roty, rotz, rotw);
[~ # ~] ou [~ # ~]
Vous pouvez utiliser transform.Rotate
comme ça:
transform.Rotate(rotx, roty, rotz);
Documentation pour transform.rotation
Exemple d'écran rotatif avec entrée accéléromètre:
float accelx, accely, accelz = 0;
void Update ()
{
accelx = Input.acceleration.x;
accely = Input.acceleration.y;
accelz = Input.acceleration.z;
transform.Rotate (accelx * Time.deltaTime, accely * Time.deltaTime, accelz * Time.deltaTime);
}
Si vous souhaitez faire pivoter l'objet selon un angle spécifique, utilisez:
float degrees = 90;
Vector3 to = new Vector3(degrees, 0, 0);
transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles, to, Time.deltaTime);
Cela tournera de 90 degrés autour de l'axe x.