捕获桌面并用作纹理?

时间:2016-05-07 18:27:20

标签: c# unity3d

我已经阅读了很多关于在Unity3D中截取屏幕截图的例子,但他们都解释了#34;游戏中"截图。我想在桌面上截取应用程序窗口的屏幕截图,并将其作为纹理绘制到GameObject上。

知道我怎么能这样做吗?我只使用过Unity3D几次,所以如果有可能,我会很感激,以及如何实现这一目标。

我知道我可以编写一些常规的C#应用​​程序来capture the outputs of windows来提交和读取Unity3D中的图像。但是,我宁愿不写入磁盘。

目前,我所能做的就是在游戏中获得#34;截图...

void LateUpdate()
{
    //I know that I could load an image from file here...
    Texture2D tex = new Texture2D(Screen.width, Screen.height);
    tex.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
    tex.Apply();
    display.material.mainTexture = tex;
}

1 个答案:

答案 0 :(得分:0)

我认为你应该使用DLL 看看at this SO answer

他解释了如何在Visual C#中捕获Window句柄。我想你可以找到一个桌面句柄(在Win7 +上)并捕获它,然后使用你的DLL将它发送到统一。