首页 > 技术文章 > 游戏屏幕朝向

sifenkesi 2014-10-08 19:23 原文

  Unity3D提供的代码级别的和屏幕相关的类主要是以下两个:

  (1)Screen.orientation 可以用于设置当前游戏的屏幕方向状态;

  (2)Input.deviceOrientation 可以获取设备屏幕方向状态。

  下面的代码根据设备的实际朝向设置App的屏幕方向:

  public void SetOrientation()
    {
        if (Input.deviceOrientation == DeviceOrientation.LandscapeLeft)     //处理横向两个方向旋转
        {
            if (Screen.orientation != ScreenOrientation.LandscapeLeft)
            {
                Screen.orientation = ScreenOrientation.LandscapeLeft;
            }
        }
        else if (Input.deviceOrientation == DeviceOrientation.LandscapeRight)
        {
            if (Screen.orientation != ScreenOrientation.LandscapeRight)
            {
                Screen.orientation = ScreenOrientation.LandscapeRight;
            }

        }
        else if (Input.deviceOrientation == DeviceOrientation.Portrait)     //处理纵向两个方向的旋转
        {
            if (Screen.orientation != ScreenOrientation.Portrait)
            {
                Screen.orientation = ScreenOrientation.Portrait;
            }
        }
        else if (Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)
        {
            if (Screen.orientation != ScreenOrientation.PortraitUpsideDown)
            {
                Screen.orientation = ScreenOrientation.PortraitUpsideDown;
            }
        }
    }

  也可以设置各个方向是否可以随意切换:

        // 当orientation为AutoRotation时,可以分别设置四个朝向的开关
        Screen.orientation = ScreenOrientation.AutoRotation;
        Screen.autorotateToLandscapeLeft = true;
        Screen.autorotateToLandscapeRight = true;
        Screen.autorotateToPortrait = false;
        Screen.autorotateToPortraitUpsideDown = false;

  注意下面四个值只有在Screen.orientation为AutoRotation时可用。

 

推荐阅读