- Home /
"Click" a GUI Button using only joystick input
So the game I am currently making uses only joystick input, which i am finding out Unity GUI doesn't support at all, I figured out how to cycle the focus through my menu after a massive search.
what i am on now, and my question, is how to either "click" or activate what is in focus through GUI.FocusControl(), or alternatively move the cursor to a specified position and simulate a mouse click with a joystick button.
i hope someone knows how to do this or i'm going to have to create my own buttons which would be as crude as it gets.
here's the current code.
public GUISkin mySkin;
private int focus = 2;
public float delay = .5f;
private bool isCheckingJoy = false;
private string[] menuOption = new string[3];
void Start(){
menuOption[2] = "Play";
menuOption[1] = "Options";
menuOption[0] = "Exit";
}
void OnGUI(){
GUI.skin = mySkin;
Rect myRect = new Rect(10,10,100,20);
GUI.SetNextControlName("Play");
GUI.Button(myRect,"Play");
myRect = new Rect(10,30,100,20);
GUI.SetNextControlName("Options");
GUI.Button(myRect,"Options");
myRect = new Rect(10,50,100,20);
GUI.SetNextControlName("Exit");
GUI.Button(myRect,"Exit");
GUI.FocusControl(menuOption[focus]);
}
void SetFocus(int change){
if(change == 1){
focus ++;
if(focus == 3){
focus = 0;
}
}else if(change == -1){
focus --;
if(focus == -1){
focus = 2;
}
}
}
void CheckJoy(){
if(Input.GetAxis("PlayerOne_Vertical") > .1f){
SetFocus(1);
}
if(Input.GetAxis("PlayerOne_Vertical") < -.1f){
SetFocus(-1);
}
}
void Update(){
if(Mathf.Abs(Input.GetAxis("PlayerOne_Vertical")) == 1 && !isCheckingJoy){
CheckJoy();
isCheckingJoy = true;
Invoke("Delay",delay);
}
if(Input.GetButtonUp("PlayerOne_LightAttack")){
}
}
void Delay(){
isCheckingJoy = false;
}
Answer by Silencerx · Jul 21, 2012 at 06:23 AM
Nvm i wrote a custom joystick button and joystick button menu class to handle it all.
heres the unify community wiki link
Your answer
Follow this Question
Related Questions
Using Gamepad to access onGUI menus? 0 Answers
custom mouse changing when hovering over objects 1 Answer
Use OnMouseEnter/OnMouse Exit with center of screen 1 Answer
Help in GUI issue - Can't lose focus of a dropdown list when mouse clicks somewhere else? 0 Answers
Setting the mouse position to specific coordinates 5 Answers