GetMouseButtonUp not working properly
Hello!!
Maybe (or most likely) it's a noob mistake, but I've been having problems with Input.GetMouseButtonUp.
When I started making the script I hadn't problems but now it doesn't recognice the input sometimes.
I'm using Update() (Not FixedUpdate())
Some pseudocode of my script would be something like this:
void Update(){
If GetMouseButtonDown{start time pressed}
If (!long time pressed){++ time)
If GetMouseButtonUp{
If/Else long time pressed {do one thing or another}
Clear Variables() //So it doesn't keep adding time
}
}
The problem isn't the variable clean, maybe I could write when the mouse is clicked, but if the realease is not made then the really effective functions won't be called.
What other things may be causing that it's not called?
I'm using C sharp and one of the latest 2017 versions of Unity, in case it helps.
Thanks in advance for your help, and I'm sorry if I haven't explained well the problem or if I made some languaje mistakes.
Answer by Hamburgert · Feb 04, 2018 at 10:30 AM
Are you, by chance, using "if/elseif" instead of "if/else"?
Try using Debug.Log instead of your if/else to verify that the Input.GetMouseButtonUp() actually does trigger every time. If it does not trigger every time, then something is preventing your script from reaching the buttonUp check.
Consider this:
void Update(){
If(Input.GetMouseButtonUp(0)){
// This debug will ALWAYS output the same frame the left mouse button is released
Debug.Log("Left mouse button released");
// The following may actually not do anything
If(something){
// This may or may not trigger
}else if(something else){
// This may or may not trigger
}
// The following WILL do something
If(something){
// This may or may not trigger
}else {
// This will ALWAYS trigger when the other did not
}
Clear Variables();
}
}
Your answer
Follow this Question
Related Questions
Why Collider2D size Y changes affects child object position 0 Answers
Why is my cube not following the other the way i want ? 1 Answer
How to Undo a lot of created objects at once? [Solved] 1 Answer
How to make hundrenths of seconds in C#? 1 Answer
Sprite renderers not rendering on Instatiated objects 2d 0 Answers