Unity中C#全屏切换按钮失效,求可用实现脚本
Unity全屏切换按钮的正确实现方案
你的原脚本失效主要有两个原因:
Screen.fullScreen属性在Unity 2019及以上版本已经被废弃,官方推荐使用Screen.fullScreenMode来控制全屏模式- 你的脚本只是接收外部传入的bool值设置全屏,没有实现「点击按钮在全屏/窗口模式间切换」的核心逻辑
下面是两种可用的全屏切换脚本,根据需求选择:
方案1:基础全屏切换(自动适配当前分辨率)
这个方案会直接在窗口和全屏模式间切换,使用当前游戏的分辨率:
using UnityEngine; public class FullscreenToggle : MonoBehaviour { // 点击按钮时调用这个方法 public void ToggleFullscreen() { // 切换全屏状态:如果当前是全屏,就改成窗口;反之亦然 bool isCurrentlyFullscreen = Screen.fullScreenMode != FullScreenMode.Windowed; Screen.fullScreenMode = isCurrentlyFullscreen ? FullScreenMode.Windowed : FullScreenMode.ExclusiveFullScreen; } }
方案2:保留自定义分辨率的全屏切换
如果需要固定分辨率(比如游戏支持1920x1080全屏,窗口用1280x720),可以用这个版本:
using UnityEngine; public class FullscreenToggle : MonoBehaviour { // 在Inspector面板设置窗口模式下的分辨率 public int windowWidth = 1280; public int windowHeight = 720; // 在Inspector面板设置全屏模式下的分辨率 public int fullscreenWidth = 1920; public int fullscreenHeight = 1080; public void ToggleFullscreen() { if (Screen.fullScreenMode == FullScreenMode.Windowed) { // 切换到全屏,使用指定分辨率 Screen.SetResolution(fullscreenWidth, fullscreenHeight, FullScreenMode.ExclusiveFullScreen); } else { // 切换到窗口,使用指定分辨率 Screen.SetResolution(windowWidth, windowHeight, FullScreenMode.Windowed); } } }
绑定按钮的操作步骤
- 把脚本挂载到任意游戏对象上(比如Canvas或者专门的Manager对象)
- 在Unity编辑器中选中你的按钮,在Inspector面板的
On Click()事件里点击+号 - 把挂载了脚本的对象拖到空的引用槽里
- 从下拉菜单中找到
FullscreenToggle->ToggleFullscreen()方法
这样点击按钮就能正常切换全屏/窗口模式了。
内容的提问来源于stack exchange,提问作者Yo-Kai Guy
相关产品推荐
相关产品推荐

