- Home /
Modifying the pause menu to have screen.lockcursor on at start
My menu comes up when "escape" is pressed and once i click the click the "continue" button the cursor locks and hide perfectly!
but the cursor does not lock when the game starts. I tried adding the above line to the start of the script but as soon as i click the mouse apears to be some where else. I tried adding the screenlock in an update function and it works but keeps locking even in pause menu.
can u add this to the start of the fuction please.
this code alone works perfectly, starting the screenlock when game starts. and unlocks when escape is pressed. stays that way until i click on the back button
var isPaused : boolean = false;
function Update(){
if(Input.GetKeyDown("escape")){
if(!isPaused)
{
isPaused = true;
Screen.lockCursor = false;
}
else
{
isPaused = false;
Screen.lockCursor = true;
}
}
}
function OnGUI(){
if(isPaused){
if(GUI.Button(Rect(10, 50, 100, 40), "Back"))
{
isPaused = false;
}
}
else if(!isPaused){
Screen.lockCursor = true;
}
}
This is the one i modified by adding Screen.lockCursor = true; to line 253 group var skin : GUISkin; var buttonOutlineAndTextColor = Color.white; var creditIcons : Texture[]; var credits : String[] = ["Priyadarshan K.A."]; var loadMainMenu : String;
UnPauseGame();
private var savedTimeScale : float;
private var pauseFilter;
private var currentPage : Page;
private var toolbarInt : int = 0;
private var toolbarStrings : String[] = ["Audio", "Graphics"];
private var firstPersonControllerCamera;
private var mainCamera;
enum Page
{
None, Main, Options, Credits
}
function LateUpdate()
{
if (Input.GetKeyDown("escape"))
{
switch (currentPage)
{
case Page.None : PauseGame();
break;
case Page.Main : UnPauseGame();
break;
default : currentPage = Page.Main;
}
}
}
function OnGUI()
{
if (skin != null)
{
GUI.skin = skin;
}
if (IsGamePaused())
{
GUI.color = buttonOutlineAndTextColor;
switch (currentPage)
{
case Page.Main: PauseMenu();
break;
case Page.Options: ShowToolbar();
break;
case Page.Credits: ShowCredits();
break;
}
}
}
function ShowToolbar()
{
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
BeginPage(400, 200);
toolbarInt = GUILayout.Toolbar (toolbarInt, toolbarStrings);
switch (toolbarInt)
{
case 0 : VolumeControl();
break;
case 1 : Qualities();
QualityControl();
break;
}
if (GUILayout.Button("Back"))
{
currentPage = Page.Main;
}
EndPage();
}
function ShowCredits()
{
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
BeginPage(400, 200);
for (var credit in credits)
{
GUILayout.Label(credit);
}
for (var credit in creditIcons)
{
GUILayout.Label(credit);
}
if (GUILayout.Button("Back"))
{
currentPage = Page.Main;
}
EndPage();
}
function Qualities()
{
switch (QualitySettings.currentLevel)
{
case QualityLevel.Fastest:
GUILayout.Label("Fastest");
break;
case QualityLevel.Fast:
GUILayout.Label("Fast");
break;
case QualityLevel.Simple:
GUILayout.Label("Simple");
break;
case QualityLevel.Good:
GUILayout.Label("Good");
break;
case QualityLevel.Beautiful:
GUILayout.Label("Beautiful");
break;
case QualityLevel.Fantastic:
GUILayout.Label("Fantastic");
break;
}
}
function QualityControl()
{
GUILayout.BeginHorizontal();
if (GUILayout.Button("Decrease"))
{
QualitySettings.DecreaseLevel();
}
if (GUILayout.Button("Increase"))
{
QualitySettings.IncreaseLevel();
}
GUILayout.EndHorizontal();
}
function VolumeControl()
{
GUILayout.Label("Use the slider to adjust the volume. Note that the volume is defaulted at 100%.");
AudioListener.volume = GUILayout.HorizontalSlider(AudioListener.volume, 0.0, 1.0);
}
function BeginPage(width, height)
{
GUILayout.BeginArea(Rect((Screen.width - width) / 2, (Screen.height - height) / 2, width, height));
}
function EndPage()
{
GUILayout.EndArea();
}
function PauseMenu()
{
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
GUI.Box(Rect(0, 0, Screen.width, Screen.height), "");
BeginPage(400, 200);
if (GUILayout.Button ("Continue"))
{
UnPauseGame();
}
if (GUILayout.Button ("Settings"))
{
currentPage = Page.Options;
}
if (GUILayout.Button ("Credits"))
{
currentPage = Page.Credits;
}
if(GUILayout.Button ("Exit"))
{
Application.Quit();
}
EndPage();
}
function PauseGame()
{
savedTimeScale = Time.timeScale;
Time.timeScale = 0;
AudioListener.pause = true;
firstPersonControllerCamera = gameObject.Find("First Person Controller").GetComponent("MouseLook");
mainCamera = gameObject.Find("Main Camera").GetComponent("MouseLook");
firstPersonControllerCamera.enabled = false;
mainCamera.enabled = false;
if (pauseFilter)
{
pauseFilter.enabled = true;
}
currentPage = Page.Main;
}
function UnPauseGame()
{
Time.timeScale = savedTimeScale;
AudioListener.pause = false;
firstPersonControllerCamera.enabled = true;
mainCamera.enabled = true;
Screen.lockCursor = true;
if (pauseFilter)
{
pauseFilter.enabled = false;
}
currentPage = Page.None;
}
function IsGamePaused()
{
return Time.timeScale == 0;
}
function OnApplicationPause (pause : boolean)
{
if (IsGamePaused())
{
AudioListener.pause = true;
}
}
Answer by cheapskate01 · Jan 26, 2015 at 12:32 AM
Use:
function start {
Screen.lockCursor = true;
}
so when the level runs, it automagically locks the mouse.
Your answer
Follow this Question
Related Questions
Lock Cursor not working right 0 Answers
Lock the screen 1 Answer
Locking the cursor in the center of the screen 1 Answer