是否有键盘快捷键可以在播放模式下最大化 Unity 中的游戏窗口



Ctrl + 空格键在编辑模式下最大化Unity 2018中的大多数窗口。是否有键盘快捷键可以在玩游戏时最大化游戏窗口?

在文档中找不到任何内容。

您可以自己实现它。

    void Update()
    {
#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            UnityEditor.EditorWindow.focusedWindow.maximized = !UnityEditor.EditorWindow.focusedWindow.maximized;
        }   
#endif
    }

我认为如果它被停靠,您可以最大化窗口,对于浮动窗口,它将无法工作。 但您可以尝试(Shift + 空格键)或 Alt + Enter

希望对您有所帮助,度过美好的一天。

创建了一个脚本来执行不需要附加到游戏对象的作业:

using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
static class FullscreenShortcut
{
    static FullscreenShortcut()
    {
        EditorApplication.update += Update;
    }
    static void Update()
    {
#if UNITY_EDITOR
        if (EditorApplication.isPlaying && ShouldToggleMaximize())
        {
            EditorWindow.focusedWindow.maximized = !EditorWindow.focusedWindow.maximized;
        }
#endif
    }
    private static bool ShouldToggleMaximize()
    {
        return Input.GetKey(KeyCode.Space) && Input.GetKey(KeyCode.LeftShift);
    }
}

比更新简单一点

static class FullscreenShortcut
{
#if UNITY_EDITOR
    [UnityEditor.MenuItem("Window/MaximizeCurrentWindow _F11")]
    static void ToggleCurrentWindowMaximized()
    {
        var window = UnityEditor.EditorWindow.focusedWindow;
        if (window == null)
            return;
        window.maximized = !window.maximized;
    }
#endif
}

有关于菜单项的更多信息:https://hugecalf-studios.github.io/unity-lessons/lessons/editor/menuitem/

只需在菜单项文本末尾添加

象征键盘键
%控制/命令
#转变
&替代项
_没有

在游戏场景"最大化播放"上单击此按钮一次,您永远不需要再次使用快捷键,因为它会重复,直到您将其关闭。 如果您仍然需要紧急它,您只需单击屏幕并使用(Shift + 空格),因为它用于最大化您当前正在处理的任何窗口,无论是游戏屏幕还是任何层次结构部分。

根据 Fischer @Ethan 的回答,我创建了以下脚本,该脚本利用新的输入系统并添加了一个额外的条件。

在游戏模式下,编辑器仍接受除游戏视图之外的所有编辑器窗口的 SHIFT+SPACE 输入。此脚本使用反射来获取游戏视图的类型,并将其与当前聚焦的窗口进行比较(我在没有此检查的情况下观察到奇怪的行为)

using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
public class MaximizeWhilePlaymode {
#if UNITY_EDITOR
    private static InputEditor input;
    private static float shift;
    static MaximizeWhilePlaymode() {
        input = new InputEditor();
        input.Editor.Enable();
        input.Editor.LeftShift.performed += ctx => shift = ctx.ReadValue<float>();
        input.Editor.Space.performed += ctx => Work(ctx.ReadValue<float>());
    }

    private static void Work(float space) {
        if(Application.isPlaying && shift > 0.5f && space > 0.5f) {
            Assembly assembly = typeof(EditorWindow).Assembly;
            Type type = assembly.GetType("UnityEditor.GameView");
            if(EditorWindow.focusedWindow.GetType() == type) {
                EditorWindow.focusedWindow.maximized = !EditorWindow.focusedWindow.maximized;
            }
        }
    }
#endif
}

如果游戏已经构建,请尝试按 Alt + Enter。

不是快捷方式,但是当您单击右上角的小菜单按钮(然后切换最大化选项)时,您可以在游戏模式下切换最大/正常大小。

最新更新