- 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