• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

常州微信小程序游戏-U3D陀螺仪检查手机方向

原创内容,转载请注明原文网址: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) &gt; 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)和旋