- Home /
Mouse Button vs Get Button
I was looking at the Scripting Reference on Input, and I noticed that one of the input options was "GetMouseButton". Curious, I looked it up. I realized that this code could be used instead of using the axis, "Fire1". For example of the code difference :
Axis
if(Input.GetButton("Fire1")){
//code goes here
}
Mouse Button
if(Input.GetMouseButton(1)){
//code goes here
}
I would suspect that they would do the exact same thing. So since I have the option to choose which one to use, I was wondering which was better to use performance wise. My guess would be "Mouse Button" because it doesn't have to check the Axis options in Unity before running. I'm not exactly sure though, so I'm trying to figure out the answer to this. I'm trying to get every last bit of performance out of my games, so even small things like this would make difference. Thanks in advance.
You can find out for yourself very easily by running a simple benchmark. Do many loops of checking Input.GetButton (100$$anonymous$$ at least) and time it using Time.realtimeSinceStartup, then do the same for Input.Get$$anonymous$$ouseButton and compare results.
Answer by aldonaletto · Nov 19, 2011 at 07:16 AM
I think you are right: GetMouseButton should be more efficient, because GetButton must search for the name and handle more things. Unity probably uses a kind of dictionary to avoid comparing the name axis by axis, but this takes more time than accessing the input directly, for sure. GetButton must be used when the controls are configurable - when you have a setup screen in your game to allow the user modify the controls.
Your answer
Follow this Question
Related Questions
How to replace input axis keyboard button with touch button? 3 Answers
GetKey/GetButton not working if 2 Adjacent keys are being pressed at the same time 1 Answer
'GetAxis' is not a member of 'function(): void' 1 Answer
A button press is not working unless I also press an axis at the same time. 1 Answer
Steelseries 3gc controller key mappings 0 Answers