我对Unity中的Input.acceleration命令有疑问。
根据官方文件,基本代码如下:
public class ExampleClass : MonoBehaviour {
public float speed = 10.0F;
void Update() {
Vector3 dir = Vector3.zero;
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;
if (dir.sqrMagnitude > 1)
dir.Normalize();
dir *= Time.deltaTime;
transform.Translate(dir * speed);
}
}
为什么检查Vector3是否超过1? (dir.sqrMagnitude)然后将其设置为1? 那是为了优化吗?
还有什么目的是将它乘以deltatime?
谢谢:)