- Home /
I need help with my pause menu
I've been trying to use the pause menu script from http://wiki.unity3d.com/index.php?title=PauseMenu and the Javascript code doesn't work, but with the C# script it works, but when I freeze the game my character glitches out like crazy, and when I unpause the game his whole body mesh is all messed up and gives me a bunch of errors. My game is in 3rd person and i'm using the animated soldier from https://www.assetstore.unity3d.com/#/content/1727 does the pause menu not work for this type of character or is it the code itself?
Answer by Zarenityx · Jan 13, 2013 at 08:55 PM
Honestly, I have found that it is better to get the basic concept from somewhere and script it yourself than to get the actual script from somewhere. I looked at the unity wiki script, and it seems overly complicated. You need a boolean variable( something like 'Paused' ), and possibly an input definition, if you want the control to be customizable. Then you need some code in the Update() function that switches the Paused variable when the desired input is pressed, and a test to see it Paused is true. In that test, you say that when Paused is true, Time.timescale is 0, and when false, 1. Then, create an OnGUI() function, with another if statement checking if Paused is true. Put all your GUI code inside that if statement. If you are executing code from a GUI button, be sure that that code does not call functions or set variables on renderers, physics, or other components that require timesteps. If you do, the code may function improperly. GUI timesteps are unaffected by the timescale, so most GUI functions are possible. To darken the screen, I usually end up creating a GUI box with Rect(0,0,Screen.width,Screen.height), and skinning it to suit the look of the game.