- Home /
 
Level Loading By 3D Text
Hi guys, i know this question has been answered many times, but none of them seem to help. I have a main menu, created using 3D text. I have a script that makes it so that once you click the text it loads the level. But i wan't to make it so that it loads up a loading screen and then the level. All other scripts never seem to work for 3D text, therefore i have asked this question. Here's my script for making the 3D text work as buttons.
 var levelToLoad : String;
 var soundhover : AudioClip;
 var beep : AudioClip;
 var QuitButton : boolean = false;
 function OnMouseEnter(){
 audio.PlayOneShot(soundhover);
 }
 function OnMouseUp(){
 audio.PlayOneShot(beep);
 yield new WaitForSeconds(0.35);
 if(QuitButton){
 Application.Quit();
 }
 else{
 
 Application.LoadLevel(levelToLoad);
 }
 }
 @script RequireComponent(AudioSource)
 
              Answer by Jessespike · Nov 03, 2012 at 11:03 PM
You're probably missing a Collider. Add one, or add this: gameObject.AddComponent("BoxCollider"); to your Start()
No that piece of code i have given works. This is just what i am using to load up the level on input. I want to add a loading screen and then for it to load up the level.
$$anonymous$$ake a "Loading Screen" prefab and when user presses the button, show the loading screen prefab before LevelLoad. Now screen will say loading while Application is loading. I don't see how 3D Text can be a problem here.
Do you have any code that could help me with this? I'm still a little confused.
It's saying on lines 13, 14 and 15 it's missing a Semi colon, this is what the code looks like with your code inserted.
var levelToLoad : String; var Loading : String; var soundhover : AudioClip; var beep : AudioClip; var QuitButton : boolean = false; var loadScreenObject : GameObject;
IEnumerator StartLevelLoad() { if (loadScreenObject != null) { loadScreenObject.SetActiveRecursively(true); } //yield return new WaitForSeconds(3); yield return new WaitForEndOfFrame(); AsyncOperation async = Application.LoadLevelAsync(levelToLoad); yield return async; }
function On$$anonymous$$ouseEnter(){ audio.PlayOneShot(soundhover); } function On$$anonymous$$ouseUp(){ audio.PlayOneShot(beep); yield new WaitForSeconds(0.35); if(QuitButton){ Application.Quit(); } else{
Application.LoadLevel(levelToLoad); } }
Add this to code: StartCoroutine("StartLevelLoad");
Add following to script:
 var loadScreenObject : GameObject;
 function StartLevelLoad() {
     if (loadScreenObject != null) {
         loadScreenObject.SetActiveRecursively(true);
     }
     //yield WaitForSeconds(3);
     yield WaitForEndOfFrame();
     Application.LoadLevel(levelToLoad);
     //AsyncOperation async = Application.LoadLevelAsync(levelToLoad);
     //yield async;
     yield 0;
 }
 
                 Your answer
 
             Follow this Question
Related Questions
Additive async loading breaks my lightmapping on mobile devices 0 Answers
disable code when level is rendered 1 Answer
Reloading Level problem 0 Answers
How would I go about making an open world game? 1 Answer
Level Segmenting and Loading 1 Answer