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