Search Issue Tracker
Fixed in 4.6.8
Votes
5
Found in
4.6.1f1
Issue ID
660196
Regression
No
Input.GetButtonDown returns true for as long as it is held
-e: On Linux, Input.GetButtonDown appears to return true every frame that the button is held, rather than once when it is first pushed. This does not happen on Windows (not checked osx yet) This is using a controller as an input device (two have been tested - a generic HID and an Xbox 360 controller). The input button used to test is the default "Submit" one. Keyboard button/s (Enter) that map to "Submit" do not show the behaviour.
-repro:
--build attached project for linux
--connect game pad and run project on linux
--press and hold the X button on the game pad
--NOTICE the counter updates every frame
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Crash when attempting to create a custom FMOD DSP unit
- [Linux] Floating windows do not keep their size after restarting the Editor
- .framework plugin is mistakenly treated as a directory when building for Universal Windows Platform
- Artifacts appear on GameObjects when using the WebGL Player on Silicon macOS
- Only the icon of the disabled child GameObject is faded when a parent GameObject is a Prefab
DenisGLabrecque
Dec 28, 2018 18:11
I am experiencing a similar problem on Windows in Unity 2018.3.0f2
KainAsylum
Jul 14, 2015 05:28
Confirmed that this is happening on Ubuntu with Unity 4.6.5f1
I tested by placing this component on the camera of an empty scene in a fresh project
[code]
#if UNITY_EDITOR
using UnityEditor;
#endif //UNITY_EDITOR
using UnityEngine;
public class ButtonTest : MonoBehaviour
{
int m_downCount = 0;
int m_holdCount = 0;
int m_upCount = 0;
bool m_isPressed = false;
//////////////////////////////////////////////////////////////////////////////
void Start()
{
m_downCount = 0;
m_holdCount = 0;
m_upCount = 0;
m_isPressed = false;
}
//////////////////////////////////////////////////////////////////////////////
void Update()
{
if (Input.GetButtonDown("Submit"))
{
++m_downCount;
}
m_isPressed = Input.GetButton("Submit");
if (m_isPressed)
{
++m_holdCount;
}
if (Input.GetButtonUp("Submit"))
{
++m_upCount;
}
if (Input.GetKeyDown(KeyCode.Escape))
{
#if UNITY_EDITOR
//Application.Quit does not work in the editor
EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif //UNITY_EDITOR
}
}
//////////////////////////////////////////////////////////////////////////////
void OnGUI()
{
string msg = "Button0 or Return Pressed: " + m_isPressed.ToString() + "\n";
msg += "Down: " + m_downCount.ToString() + "\n";
msg += "Hold: " + m_holdCount.ToString() + "\n";
msg += "Up: " + m_upCount.ToString() + "\n";
msg += "Esc to exit.\n";
GUI.Label(new Rect(0, 0, Screen.width, Screen.height), msg);
}
}
[/code]
KainAsylum
Jul 12, 2015 05:49
This issue is preventing us from releasing confidently on the Linux Platform. We are on version 4.6 as well.
ruj
Jun 30, 2015 16:07
We are seeing this issue in 4.6 as well, makes controllers unusable in Linux. Please fix ASAP
Andrew Tanoto
Jan 06, 2015 14:38
This affect UI Button, Button Script, On Click( ) on iOS devices.
Player have to tap on the "Target Graphic" very fast to prevent the desired function from executing every frame, which takes up all the memory, thus making the button not executing at all.
Works perfectly fine on computer, just not on iOS devices.