如何在屏幕分辨率更改后刷新屏幕?

问题描述:

我设法让我的游戏在运行时/在游戏中(在初始选择之后)改变它的分辨率。但是我注意到,当从1920x1080开始说800x600时,我在前面的图像/内容的边上获得了边框。如何在屏幕分辨率更改后刷新屏幕?

例如,我的菜单显示在最右侧,当缩小到800x600时,最右侧的菜单保持不变,但不可互动(它只是一个图像),而“实际菜单”是几百像素往左边。

我在问的是,有什么办法可以让我的游戏双方在有人改变分辨率时变成黑色?如果它可以帮助,我可以提供关于我的内容的图像:)

解决了它。由于某种原因,我最初尝试用黑色四分屏简单地“重置”屏幕失败。但再次尝试后,这似乎奏效。

通过创建一个四边形(或纹理)并将颜色设置为黑色(或任何其他希望设置屏幕的颜色)并将其移出,当调用屏幕分辨率时,我只需简单地将位置纹理/四合一覆盖画布/屏幕,然后重新加载关卡,并将分辨率设置为新选择的分辨率,然后重新载入我的菜单。下面的代码显示,以防其他人遇到同样的问题。

这似乎工作得很好,并且可以重复用户想要的很多次。

public void ApplyResolutionChange (GameObject menu) 
{  
     GameObject blank = GameObject.Find ("BlankScreen"); 

     blank.transform.position = new Vector3 (0, 0, 100); 
     Application.LoadLevel (0); 
     Screen.SetResolution (resolutionX, resolutionY, isFullscreen); 
} 

要刷新屏幕使用下面的代码:

This.refresh();