我可以使用以下代码使用加速度计旋转对象。
transform.rotation = Quaternion.LookRotation(Input.acceleration.normalized, Vector3.up);
但我想旋转对象,例如屏幕正在旋转 - 0度,90度,180度和360度。我怎样才能使用Unity 3D?
答案 0 :(得分:12)
您可以像这样使用transform.rotation
:
transform.rotation = new Quaternion(rotx, roty, rotz, rotw);
或强>
您可以像这样使用transform.Rotate
:
transform.Rotate(rotx, roty, rotz);
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度。
注意:如果您不理解transform.eulerAngles
是什么或Vector3.Lerp
,您可以像“unity 3d transform.eulerAngles”一样进行搜索,并且应该首先获得结果之一是团结的文件。 在开始使用之前阅读文档
答案 1 :(得分:1)
为了自己旋转你的游戏对象
int _rotationSpeed = 15;
void Update () {
// Rotation on y axis
transfrom.rotate (0, _rotationSpeed * Time.deltaTime, 0);
}