Jump to content
Unity Insider Forum

Screenshots als Ladebildschirmhintergrund


erixx

Recommended Posts

So, hier erst mal die Idee:

Es wird ein "zufälliger" Screenshot geschossen, gespeichert und dann beim Szenenwechsel als Ladebildschirmhintergrund verwendet. So gäbe es jedes mal einen anderen Ladebildschirmhintergrund.

 

Probleme Nr.1:

Der Screenshot darf keine UI Elemente beinhalten.

Das könnte evtl mit einer 2. Camera gelöst werden, die keine UI rendert, falls das möglich ist.

(Application.CaptureScreenshot / Layer?)

Diese Camera dürfte für den Spieler nicht sichtbar sein, so könnte man noch diverse Image-Effekte in den Screenshot mit einbringen, aber das wäre auch später beim Anzeigen des Ladebildes ( oder per dll Bildveränderung/Shader) noch möglich.

 

 

Problem Nr2:

Wann wird der Screenshot geschossen?

Der Screenshot muss geschossen werden, solange der Spieler noch keine neue Szene geladen hat.

Auch sollte der Spieler in diesem Moment nicht unbedingt einen Baum aus der Nähe betrachten, denn dieser Screenshot wäre doch nicht sehr spektakulär (First Person View, doch sicher auch mit einer 2. Camera lösbar.)

Nun gut, man könnte abfragen, ob sich zu diesem Zeitpunkt Objekte usw vor dem Spieler befinden.

Auch die Distanzabfrage zu den Scenenwechslern ( Türen, Portale usw) wäre möglich.

 

Vielleicht fallen euch ja noch weitere Probleme/Lösungen zur Logik und zur Praxis ein.

LG.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

 

zu deinem ersten Problem:

- erstelle eine 2. kamera

- bei Culling Mask deaktivierst du UI

- (Image Effects hinzufügen)

 

andere Möglichkeit: du deaktivierst das UI mit einem Script und aktivierst es beim Start (bzw am Ende vom Ladebildschirm)

 

zu deinem zweiten Problem:

 

Der Screenshot muss geschossen werden, solange der Spieler noch keine neue Szene geladen hat

 

Um einen Screenshot zu machen sollte die Scene doch aktiv sein? :D

Demnach könntest du mit SceneManager.LoadScene deine zweite Scene hinzufügen

vergess dabei nicht LoadSceneMode.Additive zu benuzen. :)

 

(http://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html)

 

und dann machst du deine Screenshots, am Ende entfernst du evtl noch die LadeBildschirm Scene mit SceneManager.unloadScene

 

Ich hoffe ich konnte dir helfen

 

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ TheHuanX

Danke dir, das mit der 2. Camera funktioniert soweit. UI direkt ausblenden fällt weg, da der Spieler nichts von dem Screesnshot merken soll, erst später dann.

Der Screenshot wird nur während der Ladedauer bei Application.LoadLevelAsync eingeblendet.

Der Screenshot muss geschossen werden, solange der Spieler noch keine neue Szene geladen hat -- Soll heißen, solange er noch keine andere Szene betreten hat, sich noch in der aktuellen Szene befindet. Sonst kann kein Screenshot eingeblendet werden. Sprich es braucht diverse Auslöser, die Screenshots zu schießen. Das Programm muss erkennen, wann ein guter Moment ist, einen Screenshot zu schießen. ;)

 

 

Habe eine RenderTexture erstellt, die die 2. Camera captured, und daraus wird ein png Image erstellt.

 

Passt alles, nur, wie kann ich die RenderTexture Größe im Spiel an die aktuelle Auflösung anpassen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...