编辑器中的全屏模式游戏视图

4

我正在尝试使我的游戏全屏显示,并且我在网上找到了一些脚本来实现这个目标。不幸的是,在2020版本(或2018+)中我无法执行它们。在编辑器模式下有没有启用全屏游戏窗口的方法? 从下面的脚本中,我在System.Object Res = GetMainGameView.Invoke (null, null);处得到异常错误。当前 Unity 版本是否无法访问 GetMainGameView?

using UnityEditor;
using UnityEngine;

namespace FullScreenPlayModes {
    [InitializeOnLoad]
    public class FullScreenPlayMode : Editor {
        //The size of the toolbar above the game view, excluding the OS border.
        private static int toolbarHeight = 22;

        static FullScreenPlayMode () {
            EditorApplication.playModeStateChanged -= PlayModeStateChanged;
            EditorApplication.playModeStateChanged += PlayModeStateChanged;
        }

        static void PlayModeStateChanged (PlayModeStateChange _playModeStateChange) {
            if (PlayerPrefs.GetInt ("PlayMode_FullScreen", 0) == 1) {
                // Get game editor window
                EditorApplication.ExecuteMenuItem ("Window/General/Game");
                System.Type T = System.Type.GetType ("UnityEditor.GameView,UnityEditor");
                System.Reflection.MethodInfo GetMainGameView = T.GetMethod ("GetMainGameView", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
                System.Object Res = GetMainGameView.Invoke (null, null);
                EditorWindow gameView = (EditorWindow) Res;

                switch (_playModeStateChange) {
                    case PlayModeStateChange.EnteredPlayMode:

                        Rect newPos = new Rect (0, 0 - toolbarHeight, Screen.currentResolution.width, Screen.currentResolution.height + toolbarHeight);

                        gameView.position = newPos;
                        gameView.minSize = new Vector2 (Screen.currentResolution.width, Screen.currentResolution.height + toolbarHeight);
                        gameView.maxSize = gameView.minSize;
                        gameView.position = newPos;

                        break;

                    case PlayModeStateChange.EnteredEditMode:

                        gameView.Close ();

                        break;
                }
            }
        }

        [MenuItem ("Tools/Editor/Play Mode/Full Screen", false, 0)]
        public static void PlayModeFullScreen () {
            PlayerPrefs.SetInt ("PlayMode_FullScreen", 1);
        }

        [MenuItem ("Tools/Editor/Play Mode/Full Screen", true, 0)]
        public static bool PlayModeFullScreenValidate () {
            return PlayerPrefs.GetInt ("PlayMode_FullScreen", 0) == 0;
        }

        [MenuItem ("Tools/Editor/Play Mode/Window", false, 0)]
        public static void PlayModeWindow () {
            PlayerPrefs.SetInt ("PlayMode_FullScreen", 0);
        }

        [MenuItem ("Tools/Editor/Play Mode/Window", true, 0)]
        public static bool PlayModeWindowValidate () {
            return PlayerPrefs.GetInt ("PlayMode_FullScreen", 0) == 1;
        }
    }
}

1
这是和上次一样的原因吗,“只是因为”?因为你知道...在UI中有一个内置按钮,为什么不使用它呢?^^ 顺便说一下,你知道WindowLayout.Mximize 可以用;) - derHugo
嘿@derHugo,感谢您的评论。我不知道是否有内置按钮可供使用。您能否详细说明如何激活它?我的目的是在编辑器模式下隐藏游戏视图选项卡。 - Richard
如果您将游戏选项卡拖出到自己的最大化窗口中,您就会接近全屏。 - Immersive
2
@Immersive 当然知道。但是我需要完整的全屏,不要有选项卡视图。 - Richard
3个回答

0

我知道这个问题是一年前提出的,但也许对某些人会有用。

如果你负担得起,我推荐使用名为Fullscreen Editor的资源包。 https://assetstore.unity.com/packages/tools/utilities/fullscreen-editor-69534

或者,Unity在其软件包管理器中内置了一个编辑器记录器。它将自动记录您的游戏过程,而不会受到编辑器UI或应用程序栏的影响。

或者像其他人所说的那样,制作一个测试版本或在编辑器面板中使用“最大化播放按钮”。


0
按照以下步骤来在全屏模式下播放视频。
1. 将你的视频剪辑放入Assets文件夹中。 2. 在场景中创建一个空的游戏对象,并给它添加视频播放器组件。

enter image description here enter image description here

  • 将您的视频剪辑添加到组件中的空白视频剪辑中。接下来,您可以检查设置并添加循环(如果需要)。
  • 将视频播放器的渲染模式设置为近平面(重要)。
  • 将主摄像机分配给视频播放器中的相机属性(重要) 输入图像描述
  • 完成。

-2

大多数人会建议使用“最大化播放按钮”,但这并不是你想要的。

我建议,如果您想在全屏模式下测试游戏的外观,只需在编辑构建设置/播放器设置后构建和运行,并使游戏全屏或甚至让用户使用alt+enter进入全屏模式并测试您的外观。

这比仅仅使用游戏脚本来测试编辑器中的全屏模式要容易得多,除非您想在全屏模式下查看控制台输出。商店中还有一个免费的资产,可以在构建中查看控制台。

https://assetstore.unity.com/packages/tools/gui/in-game-debug-console-68068


有很多原因想要在编辑器中实现真正的全屏,比如进行截图。 - Ben Throop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接