因此,当我尝试构建统一项目时,选项菜单未正确构建。我尝试了两个统一版本,系统的硬重启以及更改设置。没有任何问题可以解决。游戏在统一编辑器中运行正常,但在构建时无法正常运行。
编辑器下拉菜单(应该如何):
构建下拉列表(不应如此):
如果您查看构建图片,它将复制所有可能由生成它的脚本引起的下拉条目:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
public class OptionsMenu : MonoBehaviour
{
public AudioMixer audioMixer;
public Dropdown resolutionDropdown;
Resolution[] resolutions;
void Start()
{
resolutions = Screen.resolutions;
resolutionDropdown.ClearOptions();
List<string> options = new List<string>();
int currentResolutionIndex = 0;
for (int i = 0; i < resolutions.Length; i++)
{
string option = resolutions[i].width + "X" + resolutions[i].height;
options.Add(option);
if (resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height)
{
currentResolutionIndex = i;
}
}
resolutionDropdown.AddOptions(options);
resolutionDropdown.value = currentResolutionIndex;
resolutionDropdown.RefreshShownValue();
另一个问题是质量下降,在编辑器中它可以正常工作,但是当我构建它时,它并不会改变游戏质量(它保持较低水平)。
另一个问题仅发生在一个构建中。问题是鼠标移动相机的灵敏度非常低,当我再次构建它时,此问题已解决。
对于重复项,这是一个已知的问题:问题是独立存在的,它似乎以60Hz和48Hz的刷新率复制每个分辨率。
例如:640x480 @ 48Hz;640x480 @ 60Hz; 等等
解决方案可以是Linq语句,仅选择60Hz频率(或48Hz):
var resolutionsIEnumerable = Screen.resolutions.Where(resolution => resolution.refreshRate == 60);
resolutions = resolutionsIEnumerable.toArray();
LinqWhere()
返回IEnumerable,因此,您必须转换为array Resolution[]
(带有toArray()
)
为了更改分辨率,您必须使用
Screen.SetResolution(640, 480, true, 60);
您应该使用选定的分辨率进行更改,640
并且480
在下拉菜单中进行更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句