Ik kan de volgende code gebruiken om een object te roteren met een versnellingsmeter.
transform.rotation = Quaternion.LookRotation(Input.acceleration.normalized, Vector3.up);
Maar ik zou het object willen roteren zoals het scherm bijvoorbeeld roteert – 0, 90, 180 en 360 graden. Hoe kan ik dit doen met Unity 3D?
Antwoord 1, autoriteit 100%
Je kunt transform.rotation
als volgt gebruiken:
transform.rotation = new Quaternion(rotx, roty, rotz, rotw);
OF
U kunt transform.Rotate
als volgt gebruiken:
transform.Rotate(rotx, roty, rotz);
Documentatie voor transform.rotation
Voorbeeld voor roterend scherm met versnellingsmeterinvoer:
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);
}
Als u het object naar een specifieke hoek wilt draaien, gebruik dan:
float degrees = 90;
Vector3 to = new Vector3(degrees, 0, 0);
transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles, to, Time.deltaTime);
Dit draait 90 graden rond de x-as.
Antwoord 2, autoriteit 3%
Om je game-object alleen te draaien
int _rotationSpeed = 15;
void Update () {
// Rotation on y axis
transfrom.rotate (0, _rotationSpeed * Time.deltaTime, 0);
}