- Home /
 
How do you create a loading screen?
I already have the artwork, but after playing with the scripts for a few hours; nothing has worked. I want something in the beginning that goes away after a few seconds to the main menu.
The splash screen? that shows your company logo at the very start of the game
Have you tried something as simple as having a title Scene and a game Scene, making the title scene the first scene loaded (scene 0), then adding a simple timer that will call Application.LoadLevel to load the game scene?
yeah that is what i did at first but its very un smooth so i will post a script i found its quite easy to use and it does all the fading and ti$$anonymous$$g for you
Please search before asking a duplicate question. Just a few search results :
Answer by davooo0 · Nov 11, 2013 at 01:03 AM
ok just put this on the main camera of your splash screen level
 var guiDepth : int = 0;
 var levelToLoad : String = "";
 var splashLogo : Texture2D;
 var fadeSpeed : float = 0.3;
 var waitTime : float = 0.5;
 var waitForInput : boolean = false;
 var startAutomatically : boolean = true;
 var timeFadingInFinished : float = 0.0;
 var logoPositioning : LogoPositioning;
 var splashType : SplashType;
 enum SplashType {LoadNextLevelThenFadeOut, FadeOutThenLoadNextLevel}
 enum LogoPositioning {Centered, Stretched}
 private var alpha : float = 0.0;
 private var status : FadeStatus = FadeStatus.FadeIn;
 private var oldCam : Camera;
 private var oldCamGO : GameObject;
 private var splashLogoPos : Rect;
 private var loadingNextLevel : boolean = false;
 private enum FadeStatus {Paused, FadeIn, FadeWaiting, FadeOut}
  
  
 function Start()
 {
     if (startAutomatically)
     {
         status = FadeStatus.FadeIn;
     }
  
     else
     {
         status = FadeStatus.Paused;
     }
  
     oldCam = Camera.main;
     oldCamGO = Camera.main.gameObject;
  
     if (logoPositioning == LogoPositioning.Centered)
     {
         splashLogoPos.x = (Screen.width * 0.5) - (splashLogo.width * 0.5);
         splashLogoPos.y = (Screen.height * 0.5) - (splashLogo.height * 0.5);
  
         splashLogoPos.width = splashLogo.width;
         splashLogoPos.height = splashLogo.height;
     }
  
     else
     {
         splashLogoPos.x = 0;
         splashLogoPos.y = 0;
  
         splashLogoPos.width = Screen.width;
         splashLogoPos.height = Screen.height;
     }
  
     if (splashType == SplashType.LoadNextLevelThenFadeOut)
     {
         DontDestroyOnLoad(this);
         DontDestroyOnLoad(Camera.main);
     }
  
  
     if ((Application.levelCount <= 1) || (levelToLoad == ""))
     {
         Debug.LogWarning("Invalid levelToLoad value.");
     }
 }
  
  
  
 function Update()
 {
     switch(status)
     {
         case FadeStatus.FadeIn:
             alpha += fadeSpeed * Time.deltaTime;
         break;
  
         case FadeStatus.FadeWaiting:
             if ((!waitForInput && Time.time >= timeFadingInFinished + waitTime) || (waitForInput && Input.anyKey))
             {
                 status = FadeStatus.FadeOut;
             }
         break;
  
         case FadeStatus.FadeOut:
             alpha += -fadeSpeed * Time.deltaTime;
         break;
     }
 }
  
  
  
 function OnGUI()
 {
     GUI.depth = guiDepth;
  
     if (splashLogo != null)
     {
         GUI.color = Color(GUI.color.r, GUI.color.g, GUI.color.b, Mathf.Clamp01(alpha));
         GUI.DrawTexture(splashLogoPos, splashLogo);
  
             if (alpha > 1.0)
             {
                 status = FadeStatus.FadeWaiting;
                 timeFadingInFinished = Time.time;
                 alpha = 1.0;
  
                 if (splashType == SplashType.LoadNextLevelThenFadeOut)
                 {
                     oldCam.depth = -1000;
                     loadingNextLevel = true;
  
                     if ((Application.levelCount >= 1) && (levelToLoad != ""))
                     {
                         Application.LoadLevel(levelToLoad);
                     }
                 }
             }
  
             if (alpha < 0.0)
             {
                 if (splashType == SplashType.FadeOutThenLoadNextLevel)
                 {
                     if ((Application.levelCount >= 1) && (levelToLoad != ""))
                     {
                         Application.LoadLevel(levelToLoad);
                     }
                 }
  
                 else
                 {
                     Destroy(oldCamGO);
                 }
             }
     }
 }
  
  
  
 function OnLevelWasLoaded(lvlIdx : int)
 {
     if (loadingNextLevel)
     {
         Destroy(oldCam);
     }
 }
  
  
 function OnDrawGizmos()
 {
     Gizmos.color = Color(1, 0, 0, 0.5);
     Gizmos.DrawCube(transform.position, Vector3(1, 1, 1));
 }
  
  
 function StartSplash()
 {
     status = FadeStatus.FadeIn;
 }
 
              Answer by PlanetGaming · Nov 11, 2013 at 04:18 PM
I tried that script and it just goes to a bluescreen and freezes.
Your answer