前情
现在市面上的手游基本都在登陆界面上加上了对陀螺仪的应用,可以使玩家在转动手机时,轻微的改变视角。现在我们也来实现一下这个功能。
认识API
//打开陀螺仪
Input.gyro.enabled = true;
//获取设备重力加速度向量
Vector3 deviceGravity = Input.gyro.gravity;
//设备的旋转速度,返回结果为x,y,z轴的旋转速度,单位是(弧度/秒)
Vector3 rotationVelocity = Input.gyro.rotationRate;
//获取更加精确的旋转
Vector3 rotationVelocity2 = Input.gyro.rotationRateUnbiased;
//设置陀螺仪的更新检索时间,即隔0.1f更新一次
Input.gyro.updateInterval = 0.1f;
//获取移除重力加速度后设备的加速度
Vector3 acceleration = Input.gyro.userAcceleration;
不过暂时只要用其中一个:Input.gyro.rotationRateUnbiased
实现
public class _JoysticMove : MonoBehaviour
{
GameObject camParent;
//eulerAngle bound
float xTop, xBotton;
float yLeft, yRight;
//eulerAngle
float x, y;
void Start()
{
x = transform.eulerAngles.x;
y = transform.eulerAngles.y;
xTop =x-2f;
xBotton = x+2f;
yLeft = y - 2f;
yRight = y + 2f;
//打开陀螺仪
Input.gyro.enabled = true;
}
void FixedUpdate()
{
//获取旋转并限制范围
transform.eulerAngles = new Vector3(Mathf.Clamp(transform.eulerAngles.x, xTop, xBotton), Mathf.Clamp(transform.eulerAngles.y, yLeft, yRight), 0);
}
}
网友评论