Unity如何在EditorWindow中捕获GameView

时间:2019-03-18 10:41:17

标签: unity3d

我正在为我的游戏制作一个简单的leveleditor窗口,我想将GameView图像捕获到该leveleditor窗口。我正在使用ScreenCapture.CaptureScreenshotAsTexture(),但它提供了leveleditor窗口的图像,我也尝试了Texture2d.ReadPixels,但它提供了相同的结果。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以看看my answer here。我写了一个脚本,可以捕获任何当前聚焦的窗口。

您可以轻松地采用它来始终使GameView成为捕获的窗口。例如,使用像这样的反射(source

public static EditorWindow GetMainGameView()
{
    var assembly = typeof(EditorWindow).Assembly;
    var type = assembly.GetType("UnityEditor.GameView");
    var gameview = EditorWindow.GetWindow(type);
    return gameview;
}

并替换

var activeWindow = EditorWindow.focusedWindow;

使用

var activeWindow = EditorWindow.GetMainGameView();

请注意,这将打开一个新的GameView窗口。