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)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值