unity 获得分辨率
时间: 2025-02-22 08:18:38 浏览: 60
### 获取 Unity 中屏幕分辨率的方法
在 Unity 开发过程中,获取设备屏幕分辨率是一个常见的需求。通过 `Screen` 类中的属性可以直接访问当前屏幕的宽度和高度。
对于单显示器的情况,可以通过如下方式来获取当前屏幕的分辨率:
```csharp
void Start()
{
int screenWidth = Screen.currentResolution.width;
int screenHeight = Screen.currentResolution.height;
Debug.Log($"Current screen resolution is {screenWidth}x{screenHeight}");
}
```
当涉及到多显示器环境时,则需要利用 `Display` 类来进行操作。下面这段代码展示了如何检测是否存在第二个显示屏,并将其激活以及调整应用程序到该显示器的最佳分辨率[^2]:
```csharp
void Start()
{
Debug.Log(Display.displays.Length);
if (Display.displays.Length >= 2)
{
Display secondDisplay = Display.displays[1];
secondDisplay.Activate();
Screen.SetResolution(secondDisplay.renderingWidth, secondDisplay.renderingHeight, true);
Debug.Log($"Second display activated with resolution {secondDisplay.renderingWidth}x{secondDisplay.renderingHeight}");
}
}
```
需要注意的是,在某些特定情况下(例如打包后的应用),可能无法看到用于更改分辨率的选择框。这是因为默认行为被修改所致。如果希望强制显示这些选项,可以在项目设置中进行相应配置或者直接调用 API 来实现自定义逻辑。
另外一种方法是在 Windows 平台上使用 Win32API 调用来绕过 Mono 的限制从而获取更详细的屏幕信息,不过这种方法较为复杂且依赖于操作系统特性[^3]。
阅读全文
相关推荐


















