Let's switch!
Now, we'll create a way for the player to switch between PC and Xbox 360 Controller controls.
Creating control profiles
To create our profiles, we'll need to add a new variable. Add the following enum to the top of our script, before the class declaration:
public enum ControlProfile { PC, Controller };
Add it to your variables as well, like this:
public ControlProfile cProfile;
Finally, go to the DetectController()
function. Add this line of code before the line of code where you call the IdentifyController()
function in the if
statement:
cProfile = ControlProfile.Controller;
After this, add an else
statement to the if
statement with another line of code after it:
else cProfile = ControlProfile.PC;
We are setting our enum variable in the DetectController()
function to give us a default control profile. This is a fast and effective way to give our player the best control profile possible.
Adding a profile switching function
Next, we'll add a function that we can call to manually switch the control profile. Add this function to our code:
void SwitchProfile (ControlProfile Switcher) { cProfile = Switcher; }
We can call this function later to let the player choose between using the keyboard/mouse or the Xbox 360 Controller.
Adding the GUI interaction function
Now, we'll add a button to the bottom right of our controls page to let the player pick between the keyboard/mouse and Xbox 360 Controller. Add this code to your onGUI()
function, just before the line where we end the group:
GUI.Label(new Rect(450, 345, 125, 20), "Current Controls"); if(GUI.Button(new Rect(425, 370, 135, 20), cProfile.ToString())) { if(cProfile == ControlProfile.Controller) SwitchProfile(ControlProfile.PC); else SwitchProfile(ControlProfile.Controller); }
The text on the button will display which current control profile is being used. When the player clicks on the button, it will switch the control profile.