首页 > 解决方案 > 为什么更改项目设置的质量值需要将近 20-30 秒...> 使用脚本的质量?

问题描述

在画布上,我附加了一个脚本 SettingsMenu :

设置菜单

附加到 Canvas 的脚本:

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

public class SettingsMenu : MonoBehaviour
{
    public AudioMixer audioMixer;

    [SerializeField]
    private Slider _volumeSlider;

    [SerializeField]
    private Dropdown _dropDownQuality;

    public void SetVolume()
    {
        float volume = _volumeSlider.value;
        audioMixer.SetFloat("Volume", volume);
    }

    public void SetQuality()
    {
        int qualityIndex = _dropDownQuality.value;
        QualitySettings.SetQualityLevel(qualityIndex);
    }
}

然后在 On Value Changed 的​​ Graphics (Ui DropDown) 上调用 SetQuality 函数:

图形下拉设置质量

然后在运行游戏时打开编辑>项目设置...>质量的窗口,当我在游戏中更改质量时,在大多数情况下它所采用的质量几乎需要 20-30 秒才能在编辑器中更改质量窗户。它应该实时改变它。

它在 Ultra 上启动,当我在游戏中将其更改为 LOW 时,在编辑器中将其从 Ultra 更改为 Low 需要 20-30 秒。

游戏正在运行,更改仅在 20-30 秒后在编辑器中生效

标签: c#unity3d

解决方案


根据文档:

Note that changing the quality level can be an expensive operation if the new level has different anti-aliasing setting. It's fine to change the level when applying in-game quality options, but if you want to dynamically adjustquality level at runtime, pass false to applyExpensiveChanges so that expensive changes are not always applied.

QualitySettings.SetQualityLevel(qualityIndex, false);

推荐阅读