原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1230/286.html
常州微信小程序游戏开发-Unity3D使用陀螺仪-检查手机方向,设置固定的旋转角度
使用手机陀螺仪,可以获取手机的3D状态,这在开发中是很有用,下面和大家介绍的是在开发中使用陀螺仪去检查手机方向已经设置固定旋转角度的实现。
直接上常州游戏开发培训代码:
namespace UnityEngine
{
public enum ScreenOrientation
{
Unknown = 0,
Portrait = 1,
PortraitUpsideDown = 2,
LandscapeLeft = 3,
Landscape = 3,
LandscapeRight = 4,
AutoRotation = 5
}
}
/// <summary>
/// private bool m_IsBackCamera;
/// private ScreenOrientation m_CurOrientation;
/// <summary>
void CheckOrientation()
{
if (Mathf.Abs(Input.gyro.gravity.z) <= 0.9f)
{
ScreenOrientation unknown = ScreenOrientation.Unknown;
if (Mathf.Abs(Input.gyro.gravity.x) > Mathf.Abs(Input.gyro.gravity.y))
{
if (Input.gyro.gravity.x > 0f)
{
unknown = ScreenOrientation.LandscapeRight;
}
else
{
unknown = ScreenOrientation.LandscapeLeft;
}
}
else if (Input.gyro.gravity.y > 0f)
{
unknown = !this.m_IsBackCamera ? ScreenOrientation.Portrait : ScreenOrientation.PortraitUpsideDown;
}
else
{
unknown = !this.m_IsBackCamera ? ScreenOrientation.PortraitUpsideDown : ScreenOrientation.Portrait;
}
this.m_CurOrientation = unknown;
}
}
void SetupFixedRot()
{
switch (Screen.orientation)
{
case ScreenOrientation.Unknown:
this.m_FixedRot = Quaternion.Euler(90f, 180f, 0f);
break;
case ScreenOrientation.Portrait:
this.m_FixedRot = Quaternion.Euler(90f, 180f, 0f);
break;
case ScreenOrientation.PortraitUpsideDown:
this.m_FixedRot = Quaternion.Euler(90f, 0f, 0f);
break;
case ScreenOrientation.LandscapeLeft:
this.m_FixedRot = Quaternion.Euler(90f, 90f, 0f);
break;
case ScreenOrientation.LandscapeRight:
this.m_FixedRot = Quaternion.Euler(90f, 270f, 0f);
break;
default:
this.m_FixedRot = Quaternion.Euler(90f, 180f, 0f);
break;
}
}
上篇:上一篇:常州微信公众平台-U3DLuaFramework声音管理器
下篇:下一篇:常州微信小程序游戏技巧-四元数(Quaternion)和旋