2016-05-07 3 views
1

Ich habe viele Beispiele über das Erstellen von Screenshots in Unity3D gelesen, aber alle erklären "In-Game" Screenshots. Ich möchte einen Screenshot eines Anwendungsfensters auf meinem Desktop machen und ihn als Textur auf ein GameObject malen.Desktop erfassen und als Textur verwenden?

Irgendeine Idee, wie ich das tun kann? Ich habe Unity3D nur ein paar Mal benutzt und würde mich daher über einige Hinweise freuen, ob das möglich ist oder nicht und wie ich das erreichen könnte.

Ich weiß, dass ich einige reguläre C# -Anwendung schreiben kann, die capture the outputs of windows Datei und lesen Sie die Bilder in Unity3D. Ich möchte jedoch nicht auf die Festplatte schreiben.

Im Moment alles, was ich bin in der Lage ist, ein "In-Game" Screenshot zu tun bekommen ...

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; 
} 
+0

Machen Sie einen Screenshot, speichern Sie es in Ihrem Asset-Ordner, erstellen Sie ein Material dafür, zuweisen Sie, was Sie ihm zuweisen möchten? Oder verstehe ich das überhaupt nicht? – yes

+0

@yes Entschuldigung, ich habe das bereits berücksichtigt und habe es dem Beitrag hinzugefügt. Bitte beachten Sie das Update. – pookie

+0

Ich bekomme immer noch nicht, was Sie versuchen zu archivieren ^^ Wenn es nur ein Screenshot ist, machen Sie einfach einen Screenshot (wie auf der Drucktaste auf der Tastatur). Oder möchtest du eine Art Desktop-App live erleben? – yes

Antwort

-1

Ich glaube, Sie DLLs verwenden sollten.
Schauen Sie hier at this SO answer.

Er erklärt, wie ein Fenster-Handle in Visual C# erfasst wird. Ich denke, Sie können ein Desktop-Handle (auf Win7 +) finden und erfassen, dann senden Sie es mit Ihrer DLL zur Einheit.

Verwandte Themen