Jump to content
Unity Insider Forum
Sign in to follow this  
Hasenhorst

Script für Übergang zwischen zwei Skyboxen (Tag/Nacht)

Recommended Posts

Guten Abend,

 

ich bin auf der Suche nach einer Möglichkeit zwei Himmelstexturen automatisch überblenden zu lassen. Einen entsprechenden Shader konnte ich dazu bereits finden:

 

http://wiki.unity3d.com/index.php?title=SkyboxBlended

 

Soweit so gut.

Ich frage mich jetzt nur, wie ich es hin bekomme, dass die Skybox automatisch nach einer bestimmten Zeit überblendet?

 

Mit freundlichen Grüßen

Hasenhorst

Share this post


Link to post
Share on other sites

Hi,

ich würde einfach über Time.time die Spielzeit abfragen und dementsprechend den "_Blend" -wert setzen ;)

 

Den Blendwert setzt man glaube ich etwa so:

using UnityEngine;
using System.Collections;

public class Sky : MonoBehaviour {
   public Material skybox;
   public float blend;

   void Update () {
       skybox.SetFloat("_Blend",blend);
   }
}

Share this post


Link to post
Share on other sites

mal ne frage sowas hab ich auch schon gesucht. aber ich muss ehrlich sagen das scripten ist nix für mich ;) geht das auch über nen trigger? oder sollte man das komplett anders lösen. zb eine scene die bis zum bestimmten zeitpunkt den einen look hat und wenn mann zb aus nen gebäude wieder ruaskommt bekommt die scene nen 2 look

Share this post


Link to post
Share on other sites

Das Ding ist zwar ne Lösung, aber falls man dann irgendwie was braucht was der nicht kann, muss man sich stundenlang irgendwas zusammenstecken und rumprobieren weil man keine Praxiserfahrung hat und der generierte Code ist alles andere als schön, aber wenn man nix mit dem scripten anfangen kann, dann isses halt so.

Share this post


Link to post
Share on other sites

Vielen Dank für die Hinweise und die Hilfe!

 

Ich finde den Lösungsansatz von Mr 3d gar nicht mal schlecht, aber kann ich nicht einfach auch angeben wie lange eine der beiden Skyboxes gezeigt werden soll anstatt die Spielzeit abzufragen??

 

Bsp:

------------------------------------------------------

Skybox1

...

wait 30 Sec

...

dann blende zu Skybox2

...

wait 30 Sec

...

blende zu Skybox1 zurück

-------------------------------------------------------

(Schleife)

 

HortusLongus dein Verweis auf die Videos war auch sehr Hilfreich. Nur fehlt mir allein dieser kleine Schritt. Ansonsten bin ich mit meinem Day/Night-Circle bereits zufrieden. Ich würde lieber einen Codesnipsel einbauen anstatt eines komplett neuen Scriptes.

 

Hat jemand eine Idee, wie das Ganze auszusehen hätte in meinem Beispiel?

 

Viele Grüße

Hasenhorst

Share this post


Link to post
Share on other sites

Klar, aber nächstes mal besser googeln ;)

 

void Start()
{
  StartCoroutine(Warte());
}
IEnumerator Warte()
{
  yield return new WaitForSeconds(30.0f);
  VerändereSkyBox();
}

 

So als kleiner Ansatz.

Share this post


Link to post
Share on other sites

Ich würde einen Lerp benutzen, sonst sieht es sehr unschön aus, wenn der Himmel plötzlich tauscht...

 

Hier ein Beispiel:

using UnityEngine;

using System.Collections;

public class DayNight : MonoBehaviour {
public Material skybox;
public float DayNightTime;
float Lerp;
float WorldTime;
bool isAdding = false;

void Update(){
	if(Lerp >= 1 || Lerp <= 0){
		isAdding = !isAdding;
	}
	if(isAdding){
		WorldTime += Time.deltaTime;
	}
	else{
		WorldTime -= Time.deltaTime;
	}
	Lerp = WorldTime/DayNightTime;
	skybox.SetFloat("_Blend",Mathf.Lerp(0,1,Lerp));
}
}

 

Bitte nicht einfach kopieren, sonst lernst du nichts dabei ;)

 

EDIT:

Sorry, W4KE hab deine Antwort nicht gesehen

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...