Unity改变应用游戏的分辨率 resoution

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity改变应用游戏的分辨率 resoution相关的知识,希望对你有一定的参考价值。

设置和获取分辨率的代码

用了一个方法,获取所有可能的分辨率

PC能用,手机读不到,不确定是不是肯定完全读不到,之后再分析

 

        _resolutions = Screen.resolutions;
        resolutionDropdown.ClearOptions();
        
        var options = new List<string>();

        int currentResolutionIndex = 0;
        for(int i = 0 ; i < _resolutions.Length ; i++)
        
            options.Add(_resolutions[i].width + " x " + _resolutions[i].height);
            if (_resolutions[i].width == Screen.currentResolution.width
                && _resolutions[i].height == Screen.currentResolution.height)
                currentResolutionIndex = i;
        

    public void SetResolution(int resolutionIndex)
    
        var resolution = _resolutions[resolutionIndex];
        Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
    

分析参考

Switches the screen resolution.

切换屏幕分辨率。

A width by height resolution will be used. If no matching resolution is supported, the closest one will be used.

应用有宽高的分辨率,如果没有匹配的分辨率被支持,将使用最接近的分辨率。

If preferredRefreshRate is 0 (default) Unity will switch to the highest refresh rate supported by the monitor.

If preferredRefreshRate is not 0 Unity will use it if the monitor supports it, otherwise will choose the highest supported one.

如果preferredRefreshRate为0(默认),Unity将切换到显示器支持的最高刷新率。如果preferredRefreshRate不是0,如果显示器支持,Unity将使用它,否则将选择支持的最高的一个。

In the web player you may only switch resolutions after the user has clicked on the content. The recommended way of doing it is to switch resolutions only when the user clicks on a designated button.

在网络播放器,你只可以在用户点击内容之后切换分辨率。推荐的方法是只在用户点击一个指定的按钮时切换分辨率。

On android fullscreen controls the SYSTEM_UI_FLAG_LOW_PROFILE flag to View.setSystemUiVisibility(), on devices running Honeycomb (OS 3.0 / API 11) or later.

在Android全屏是控制SYSTEM_UI_FLAG_LOW_PROFILE到View.setSystemUiVisibility(),在Android系统3.0或更高版本的设备。

On Windows Store Apps, switching to non-native resolution is only supported starting from Windows 8.1 and newer.

在Windows Store Apps切换到非本地分辨率,仅支持Windows 8.1或更高版本。

A resolution switch does not happen immediately; it will actually happen when the current frame is finished.

全屏开关不会立即发生,在当前帧完成时它才实际发生。

// Switch to 640 x 480 fullscreen 全屏模式

Screen.SetResolution(640, 480, true);

// Switch to 640 x 480 fullscreen at 60 hz

Screen.SetResolution (640, 480, true, 60);

// Switch to 800 x 600 windowed 窗口模式

Screen.SetResolution (800, 600, false);

相关资源:unity分辨率_unity获取屏幕分辨率,unity获取手机分辨率-其它代码...

设帧率的方法

int[] _targetFrameRates = new[]  60, 40, 30, 20 ;
    public void SetFPS(int fpsIndex)
    
        Application.targetFrameRate = _targetFrameRates[fpsIndex];
    

以上是关于Unity改变应用游戏的分辨率 resoution的主要内容,如果未能解决你的问题,请参考以下文章

Unity中的小白盒

unity游戏自定义分辨率 教你如何自定义

unity UGUI 界面自适应 屏幕自适应 主要应用于解决不同手机分辨率不同,导致界面出问题

unity3d调了build分辨率,但是出来之后还是全屏

游戏开发39课 unity动态设置分辨率

Unity渲染优化中文翻译——GPU的优化策略