- Home /
 
               Question by 
               gameorchard · Nov 27, 2015 at 10:24 AM · 
                javascriptpause menu  
              
 
              Pause menu 'Exit' scene change problem
Hi guys,
There is a problem with my pause menu script. I do not own the script, but I have a good understanding of how it works.
The problem is when I click the exit button the next scene does not fade in, I presume this it because the game is never unpaused
I have tried making a function to unpause the game when that level is loaded up. This is what code I made to fix the problem:
     function OnLevelWasLoaded (level : int) {
         if (level == 15) {
             Time.timeScale = 1;
         }
     }
Here is the code in full:
 var skin:GUISkin;
  
 private var gldepth = -0.5;
 private var startTime = 0.1;
  
 var mat:Material;
  
 private var tris = 0;
 private var verts = 0;
 private var savedTimeScale:float;
 private var pauseFilter;
  
 private var showfps:boolean;
 private var showtris:boolean;
 private var showvtx:boolean;
 private var showfpsgraph:boolean;
  
 var lowFPSColor = Color.red;
 var highFPSColor = Color.green;
  
 var lowFPS = 30;
 var highFPS = 50;
  
 var start:GameObject;
  
 var url = "in.html";
  
 var statColor:Color = Color.white;
  
 var credits:String[]=[
     "A GameOrchard Production",
     "Programming by CliffTheDev and G4MING.6UY",
     "Written by Caio Sampaio, Animated by Aaron Rathbone",
     "Voiced by Skyler Yuda, Matthew Radley and Nathan Davis"
 ] ;
 var crediticons:Texture[];
 
 enum Page {
     None,Main,Options,Credits
 }
  
 private var currentPage:Page;
  
 private var fpsarray:int[];
 private var fps:float;
  
  
 function OnPostRender() {
     if (showfpsgraph && mat != null) {
         GL.PushMatrix ();
         GL.LoadPixelMatrix();
         for (var i = 0; i < mat.passCount; ++i)
         {
             mat.SetPass(i);
             GL.Begin( GL.LINES );
             for (var x=0; x<fpsarray.length; ++x) {
                 GL.Vertex3(x,fpsarray[x],gldepth);
             }
         GL.End();
         }
         GL.PopMatrix();
         ScrollFPS();
     }
 }
  
 function ScrollFPS() {
     for (var x=1; x<fpsarray.length; ++x) {
         fpsarray[x-1]=fpsarray[x];
     }
     if (fps < 1000) {
         fpsarray[fpsarray.length-1]=fps;
     }
 }
  
 
 
 
 
 static function IsDashboard() {
     return Application.platform == RuntimePlatform.OSXDashboardPlayer;
 }
  
 static function IsBrowser() {
     return (Application.platform == RuntimePlatform.WindowsWebPlayer ||
         Application.platform == RuntimePlatform.OSXWebPlayer);
 }
  
 function LateUpdate () {
     if (showfps || showfpsgraph) {
         FPSUpdate();
     }
     if (Input.GetKeyDown("escape")) {
         switch (currentPage) {
             case Page.None: PauseGame(); break;
             default: currentPage = Page.Main;
         }
     }
 }
  
 function OnGUI () {
     if (skin != null) {
         GUI.skin = skin;
     }
     ShowStatNums();
     ShowLegal();
     if (IsGamePaused()) {
         GUI.color = statColor;
         switch (currentPage) {
             case Page.Main: PauseMenu(); break;
             case Page.Options: ShowToolbar(); break;
             case Page.Credits: ShowCredits(); break;
         }
     }    
 }
  
 function ShowLegal() {
     if (!IsLegal()) {
         GUI.Label(Rect(Screen.width-100,Screen.height-20,90,20),
         "fugugames.com");
     }
 }
  
 function IsLegal() {
     return !IsBrowser() || 
     Application.absoluteURL.StartsWith("http://www.fugugames.com/") ||
     Application.absoluteURL.StartsWith("http://fugugames.com/");
 }
  
 private var toolbarInt:int=0;
 private var toolbarStrings: String[]= ["Audio","Graphics","Stats","System"];
  
 function ShowToolbar() {
     BeginPage(300,300);
     toolbarInt = GUILayout.Toolbar (toolbarInt, toolbarStrings);
     switch (toolbarInt) {
         case 0: VolumeControl(); break;
         case 3: ShowDevice(); break;
         case 1: Qualities(); QualityControl(); break;
         case 2: StatControl(); break;
     }
     EndPage();
 }
  
 function ShowCredits() {
     BeginPage(300,300);
     for (var credit in credits) {
         GUILayout.Label(credit);
     }
     for (var credit in crediticons) {
         GUILayout.Label(credit);
     }
     EndPage();
 }
  
 function ShowBackButton() {
     if (GUI.Button(Rect(20,Screen.height-50,50,20),"Back")) {
         currentPage = Page.Main;
     }
 }
  
  
 function ShowDevice() {
     GUILayout.Label ("Unity player version "+Application.unityVersion);
     GUILayout.Label("Graphics: "+SystemInfo.graphicsDeviceName+" "+
     SystemInfo.graphicsMemorySize+"MB\n"+
     SystemInfo.graphicsDeviceVersion+"\n"+
     SystemInfo.graphicsDeviceVendor);
     GUILayout.Label("Shadows: "+SystemInfo.supportsShadows);
     GUILayout.Label("Image Effects: "+SystemInfo.supportsImageEffects);
     GUILayout.Label("Render Textures: "+SystemInfo.supportsRenderTextures);
 }
  
 function Qualities() {
         GUILayout.Label(QualitySettings.names[QualitySettings.GetQualityLevel()]);
 }
  
 function QualityControl() {
     GUILayout.BeginHorizontal();
     if (GUILayout.Button("Decrease")) {
         QualitySettings.DecreaseLevel();
     }
     if (GUILayout.Button("Increase")) {
         QualitySettings.IncreaseLevel();
     }
     GUILayout.EndHorizontal();
 }
  
 function VolumeControl() {
     GUILayout.Label("Volume");
     AudioListener.volume = GUILayout.HorizontalSlider(AudioListener.volume,0.0,1.0);
 }
  
 function StatControl() {
     GUILayout.BeginHorizontal();
     showfps = GUILayout.Toggle(showfps,"FPS");
     showtris = GUILayout.Toggle(showtris,"Triangles");
     showvtx = GUILayout.Toggle(showvtx,"Vertices");
     showfpsgraph = GUILayout.Toggle(showfpsgraph,"FPS Graph");
     GUILayout.EndHorizontal();
 }
  
 function FPSUpdate() {
     var delta = Time.smoothDeltaTime;
         if (!IsGamePaused() && delta !=0.0) {
             fps = 1 / delta;
         }
 }
  
 function ShowStatNums() {
     GUILayout.BeginArea(Rect(Screen.width-100,10,100,200));
     if (showfps) {
         var fpsString= fps.ToString ("#,##0 fps");
         GUI.color = Color.Lerp(lowFPSColor, highFPSColor,(fps-lowFPS)/(highFPS-lowFPS));
         GUILayout.Label (fpsString);
     }
     if (showtris || showvtx) {
         GetObjectStats();
         GUI.color = statColor;
     }
     if (showtris) {
         GUILayout.Label (tris+"tri");
     }
     if (showvtx) {
         GUILayout.Label (verts+"vtx");
     }
     GUILayout.EndArea();
 }
  
 function BeginPage(width,height) {
     GUILayout.BeginArea(Rect((Screen.width-width)/2,(Screen.height-height)/2,width,height));
 }
  
 function EndPage() {
     GUILayout.EndArea();
     if (currentPage != Page.Main) {
         ShowBackButton();
     }
 }
  
 
  
  
 function PauseMenu() {
     BeginPage(200,200);
     if (GUILayout.Button ("Continue")) {
         UnPauseGame();
  
     }
     if (GUILayout.Button ("Options")) {
         currentPage = Page.Options;
     }
     if (GUILayout.Button ("Credits")) {
         currentPage = Page.Credits;
     }
 
     if (GUILayout.Button ("Exit")) {
         Application.LoadLevel("Main Menu");
     }
 
     EndPage();
 }
  
 function GetObjectStats() {
     verts = 0;
     tris = 0;
     var ob = FindObjectsOfType(GameObject);
     for (var obj in ob) {
         GetObjectStats(obj);
     }
 }
  
 function GetObjectStats(object) {
     var filters : Component[];
     filters = object.GetComponentsInChildren(MeshFilter);
     for( var f : MeshFilter in filters )
     {
         tris += f.sharedMesh.triangles.Length/3;
           verts += f.sharedMesh.vertexCount;
     }
 }
  
 function PauseGame() {
     savedTimeScale = Time.timeScale;
     Time.timeScale = 0;
     AudioListener.pause = true;
     if (pauseFilter) pauseFilter.enabled = true;
     currentPage = Page.Main;
 }
  
 function UnPauseGame() {
     Time.timeScale = savedTimeScale;
     AudioListener.pause = false;
     if (pauseFilter) pauseFilter.enabled = false;
     currentPage = Page.None;
 }
  
 function IsGamePaused() {
     return Time.timeScale==0;
 }
  
 function OnApplicationPause(pause:boolean) {
     if (IsGamePaused()) {
         AudioListener.pause = true;
     }
 }
All help is greatly appreciated,
Thanks
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Pause Menu Issue (Black Screen) 0 Answers
Setting Scroll View Width GUILayout 1 Answer
Pause Menu won't open... 1 Answer
Pause Menu Background 1 Answer
Can someone help me fix my Javascript for Flickering Light? 6 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                