在游戏中往往会出现游戏画质设置的功能。
如图:

这个功能是怎么实现完成的呢?
首先要了解unity中共支持多少种画质。
在代码中也可以进行打印。
方法如下:
- void Start () {
- //画质有哪些
- for (int i = 0; i < QualitySettings.names.Length; i++)
- {
- Debug.Log("画质类型有这些:"+QualitySettings.names[i].ToString());
-
- }
-
-
- }
主要的API就一个:QualitySettings。
上述代码运行结果如图:

由此可见unity有6种画质类型。(当前版本unity2020版)
------下面制作一个简易的菜单用来实现切换不同画质的功能--------
新建Dropdown,调整好UI的位置在左上角。

运行一下,可以看到新建的下拉菜单默认的UI是Option A,Option B,Option C

我们可以在属性了进行修改:

然后还可以在加号的地方添加新的选项:

这样在UI里
本案例里只做了四种画质。
将切换画质方法的脚本setquality挂载到物体Dropdown上。
如下:
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- using System.Collections.Generic;
-
- public class setquality : MonoBehaviour {
-
- private List<string> Qualitylevels;
- // Use this for initialization
- void Start () {
- //画质有哪些
- for (int i = 0; i < QualitySettings.names.Length; i++)
- {
- Debug.Log("画质类型有这些:"+QualitySettings.names[i].ToString());
-
- }
-
-
- }
-
-
-
- public void Set_Quality()
- {
- int qualitynumberchanged = 5;//画质高低,代表画质质量高低,数值越大画质越好。
- if (this.GetComponentInChildren
().text == "极致") - {
- qualitynumberchanged = 5;//画质高低
- QualitySettings.SetQualityLevel(qualitynumberchanged, true);//修改画质代码
- Debug.Log("当前画质:" + QualitySettings.names[qualitynumberchanged].ToString());
- }
-
- if (this.GetComponentInChildren
().text == "高清") - {
- qualitynumberchanged = 4;//画质高低
- QualitySettings.SetQualityLevel(qualitynumberchanged, true);
- Debug.Log("当前画质:" + QualitySettings.names[qualitynumberchanged].ToString());
- }
-
- if (this.GetComponentInChildren
().text == "标清") - {
- qualitynumberchanged = 3;//画质高低
- QualitySettings.SetQualityLevel(qualitynumberchanged, true);
- Debug.Log("当前画质:" + QualitySettings.names[qualitynumberchanged].ToString());
- }
- if (this.GetComponentInChildren
().text == "流畅") - {
- qualitynumberchanged = 1;//画质高低
- QualitySettings.SetQualityLevel(qualitynumberchanged, true);
- Debug.Log("当前画质:" + QualitySettings.names[qualitynumberchanged].ToString());
- }
-
- }
-
- }
然后在Dropdown上的On Value changed中放置绑定脚本的物体。如图:

然后在右侧将脚本中的方法选中。

如下:
