erixx Geschrieben 1. März 2016 Melden Share Geschrieben 1. März 2016 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 More sharing options...
TheHuanX Geschrieben 2. März 2016 Melden Share Geschrieben 2. März 2016 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? 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 More sharing options...
erixx Geschrieben 2. März 2016 Autor Melden Share Geschrieben 2. März 2016 @ 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 More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.