You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中C#全屏切换按钮失效,求可用实现脚本

Unity全屏切换按钮的正确实现方案

你的原脚本失效主要有两个原因:

  1. Screen.fullScreen 属性在Unity 2019及以上版本已经被废弃,官方推荐使用Screen.fullScreenMode来控制全屏模式
  2. 你的脚本只是接收外部传入的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);
        }
    }
}

绑定按钮的操作步骤

  1. 把脚本挂载到任意游戏对象上(比如Canvas或者专门的Manager对象)
  2. 在Unity编辑器中选中你的按钮,在Inspector面板的On Click()事件里点击+号
  3. 把挂载了脚本的对象拖到空的引用槽里
  4. 从下拉菜单中找到FullscreenToggle -> ToggleFullscreen()方法

这样点击按钮就能正常切换全屏/窗口模式了。

内容的提问来源于stack exchange,提问作者Yo-Kai Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:24:52