In my game I have a script running that basically hides/locks my cursor and puts a custom crosshair on a GUI.
#pragma strict
var crosshairTex : Texture; // Crosshair texture goes here
var position : Rect; // Position of the crosshair
static var OriginalOn = true;
function Start ()
{
Screen.lockCursor = true;
}
function Update ()
{
position = Rect((Screen.width - crosshairTex.width)/2, (Screen.height - crosshairTex.height)/2, crosshairTex.width, crosshairTex.height);
// Determines the width/height of our crosshair position
}
function OnGUI ()
{
if (OriginalOn == true)
{
GUI.DrawTexture(position, crosshairTex); // Draws the crosshair texture
Screen.showCursor = false; // Disables the cursor from being visable
}
}
At various stages throughout the game the player can change views. To do this I have another script that changes the view and disables the above script. (I checked the inspector during play, it does uncheck the script)
var cam1 : Camera;
var cam2 : Camera;
var cam2Active : boolean = false;
function Start()
{
cam1.enabled = true;
cam2.enabled = false;
}
function Update()
{
var freezePlayer = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren(CustomCrosshair);
if (cam2Active == false)
{
if(Input.GetKeyDown(KeyCode.C))
{
cam1.enabled = false;
cam2.enabled = true;
freezePlayer.enabled = false;
cam2Active = true;
EnableCursor();
}
}
else
if (cam2Active == true)
{
if(Input.GetKeyDown(KeyCode.C))
{
cam1.enabled = true;
cam2.enabled = false;
freezePlayer.enabled = true;
cam2Active = false;
}
}
}
I thought the cursor would automatically re-enable but it didn’t. So I decided to put in a coroutine to enable the cursor again
function EnableCursor()
{
Screen.showCursor = true; // Enables the cursor to be visable again
}
But for some reason it doesn’t work. How can I get the cursor to be enabled again? (apart from having to press the ESC key every time)
???