Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.07.2018, 11:59

Unity blendet Skybox rotieren und States "stoppen"

Huhu Leute.

Folgende kurze Frage:
ich habe über die Rendersettings, eine blendet Skybox erstellt. Diese nutzt einen eigenen Shader, der es ermöglicht 3 Staten der Skybox zu
includieren (z.B. hell, mittel, dunkel).

jetzt ist das so weit alles "ok", als Script mal:

C#-Quelltext

1
2
3
4
        RenderSettings.fog = true;                                  // schaltet lediglich den Nebel ein ( im Renderer )
        RenderSettings.fogMode = FogMode.ExponentialSquared;        // Einfluss auf den Nebel nach Script.
        RenderSettings.fogDensity = _nebelDichteEinstellung;        // Nebeldichte.
                RenderSettings.skybox.SetFloat("_Blend", 0);                // steuert den Blending der Skbox auf 0 im Start


So weit so gut. Mein Problem, wenn ich versuche die Skybox zu rotieren, passiert nix.
D.h. :

C#-Quelltext

1
RenderSettings.skybox.SetFloat("_Rotation", Time.time * _skyboxRotationSpeed);


Woran liegt es, das ich da keine bewegung reinkriege ? Einer ne Idee, wäre prima, weil das fehlt dann doch irgendwie *hm*

Gleichzeitig noch ne Frage: das Wetter läuft automatisch ab (für gewöhnlich hier) dafür gibt es eine bestimmte Zeit, in der es sich ändert.
Jetzt ist folgendes: Ich habe ebenfalls einen "Hand Status" hinzugefügt, damit ich in z.B. diversen Levels, auch vermeiden kann das
das Wetter sich ändert, sondern (auch von außerhalb des Scriptes) auf ein bestimmtes Wetter festgelegt werden kann (und ich im Prinzip
handkontrolle über die zufallswetterstats habe).

Das sieht so aus:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
_WeatherHandState += 1;
            if (WeatherHandState > 5) {
            
                _WeatherHandState = 1;}
            if (WeatherHandState == 1) {
                weatherchanger = AutomatedWeatherSystem.Sonnenschein;
            }
            if (WeatherHandState == 2) {
                weatherchanger = AutomatedWeatherSystem.Gewitter;
            }


mein Denkfehler kann unmöglcih so groß sein, das Problemn ist, switche ich z.B. von 1 auf 2, läuft der Status Sonnenschein() weiter.
Der müßte gestoppt werden. Eigentlich ist das ja ne Art "Coroutine", bzw. wie stoppe ich den, damit sich Sonnenschein + Gewitter nicht überschneiden beim
umschalten ?

Vielen Dank für Eure Mühe + Zeit, würde mich wirklich über Antwort freuen!
Vorsicht! Tante Gretel darf man nicht hänseln.