Unity游戏动态设置分辨率—— Dropdown 控件

在Canvas下新建一个Dropdown 。

然后创建脚本 SetScreenResolving

using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;


//控制屏幕分辨率,全屏,窗口的脚本
public class SetScreenResolving : MonoBehaviour
{
    
    
    private Resolution[] reso;

    public Dropdown DropWin;

    private List<Dropdown.OptionData> DropWinList = new List<Dropdown.OptionData>();

    //切换
    //屏幕的宽度
    int screenWidth = 0;
    //屏幕的高度
    int screenHeight = 0;

    private void Awake()
    {
    
    
        screenWidth = Screen.currentResolution.width;
        screenHeight = Screen.currentResolution.height;

    }
    void Start()
    {
    
    
        //屏幕分辨率大小
        reso = Screen.resolutions;
        DropWin.options.Clear();

        for (int i = 0; i < reso.Length; i++)
        {
    
    
            DropWinList.Add(new Dropdown.OptionData());

            DropWinList[i].text = ShowResolving(reso[i]);
            DropWin.value = i;

            DropWin.options.Add(DropWinList[i]);
        }

        DropWin.onValueChanged.AddListener(index =>
        {
    
    
            DropWin.captionText.text = ShowResolving(reso[index]);
            FullScree(reso[index]);
        });

        DropWin.captionText.text = "屏幕分辨率";


    }
    private void Update()
    {
    
    

    }
    void FullScree(Resolution res)
    {
    
    

        //获取设置当前屏幕分辩率//如果当前设置分辨率大于1K自动读取电脑屏幕分辨率设置最大分辨率//全屏
        //否则不设置全屏
        if (res.height >= 1080)
        {
    
    
            //设置当前分辨率
            Screen.SetResolution(screenWidth, screenHeight, true);
        }
        else
        {
    
    
            Screen.SetResolution(res.width, res.height, false);
        }
    }

    string ShowResolving(Resolution res)
    {
    
    
        return res.width + "X" + res.height;
    }
}

把脚本挂场景物体上
效果:![分辨率设置](https://img-blog.csdnimg.cn/54231b849ef847c5afcbcc4878f670fa.png#pic_center)

猜你喜欢

转载自blog.csdn.net/qq_45506643/article/details/123841905
今日推荐