- Home /
FPC Mouselook Axis problem on pause GUI
I have the escape key toggling a pause menu. I'm trying to set up something where the escape key will toggle the controls of the first person controller on or off.
I am using Input.resetInputAxes in the fpc's FPSInputController script like this:
private var motor : CharacterMotor; internal var noInput : boolean; private var wasLocked = false;
// Use this for initialization function Awake () { motor = GetComponent(CharacterMotor); }
// Update is called once per frame function Update () {
if (noInput) {Input.ResetInputAxes(); //************************************************
} // Get the input vector from kayboard or analog stick var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
if (directionVector != Vector3.zero) {
// Get the length of the directon vector and then normalize it
// Dividing by the length is cheaper than normalizing when we already have the length anyway
var directionLength = directionVector.magnitude;
directionVector = directionVector / directionLength;
// Make sure the length is no bigger than 1
directionLength = Mathf.Min(1, directionLength);
// Make the input vector more sensitive towards the extremes and less sensitive in the middle
// This makes it easier to control slow speeds when using analog sticks
directionLength = directionLength * directionLength;
// Multiply the normalized direction vector by the modified length
directionVector = directionVector * directionLength;
}
// Apply the direction to the CharacterMotor
motor.inputMoveDirection = transform.rotation * directionVector;
motor.inputJump = Input.GetButton("Jump");
}
function ToggleInput (state : boolean) {
noInput = state;
}
// Require a character controller to be attached to the same game object @script RequireComponent (CharacterMotor) @script AddComponentMenu ("Character/FPS Input Controller")
The Input.resetInputAxes() does freeze motion in response to mouse movements left and right, and also deactivates the WASD movement keys. But game still follows mouse movements Up and Down when the pause menu is up. Any idea on how to stop it?
What do you mean the "game still follows mouse movement Up and Down." Is Input.GetAxis("Vertical") non-zero despite the ResetInputAxes() call or is there something else going on?
Answer by DSebJ · May 04, 2013 at 12:43 AM
Set a static GamePaused Boolean variable and just update it when the game is paused. Then just make sure you check it before processing any input.
Or try set the TimeScale to 0 while your game is paused http://docs.unity3d.com/Documentation/ScriptReference/Time-timeScale.html assuming that your using something like Time.deltaTime as part of the equation to calculate player movement
Your answer
Follow this Question
Related Questions
changing from mouse click to keys 0 Answers
Pause menu script, mouse not hiding 1 Answer
How do I invert an input axis using Javascript? 1 Answer
menu issue and mouse click 0 Answers
Loading GUI in middle of mouse and make it work radial 1 Answer