我可以使用以下代码使用加速度计旋转对象。
transform.rotation = Quaternion.LookRotation(Input.acceleration.normalized, Vector3.up);
但我想旋转对象,例如屏幕正在旋转 - 0、90、180 和 360 度。我如何使用 Unity 3D 做到这一点?
最佳答案
您可以使用 transform.rotation
像这样:
transform.rotation = new Quaternion(rotx, roty, rotz, rotw);
或
您可以使用
transform.Rotate
像这样:transform.Rotate(rotx, roty, rotz);
Documentation for Quaternion
Documentation for transform.rotation
带有加速度计输入的旋转屏幕示例:
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);
}
如果要将对象旋转到特定角度,请使用:
float degrees = 90;
Vector3 to = new Vector3(degrees, 0, 0);
transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles, to, Time.deltaTime);
这将围绕 x 轴旋转 90 度。
关于unity3d - 在 Unity 3D 中旋转对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648071/