schoen08 Geschrieben 16. Juni 2013 Melden Share Geschrieben 16. Juni 2013 Erster Teil : KLICK Im ersten Teil haben wir unser Spiel auf die Konsole gebracht, nun wollen wir natürlich auch mit dem Controller das Spiel steuern. Dies funktioniert nicht mit den Standart Unity Inputs, die Ouya hat ein eigenes System, bei welchen auch die 4 möglichen Controller berücksichtigt werden. Wenn man mit Javascript programmiert, gibt es noch ein paar Besonderheiten zu berücksichtigen. Ansonsten kannst du gleich mit Punkt 2 weitermachen. 1. Anpassung des Plugins an Javascript Das Unity-Plugin ist standartmäßig für C# ausgelegt, um den Input auch erfolgreich mit Javacript zu bekommen, müssen wir ein paar Dateien verschieben. Im Asset-Ordner "Ouya" unter "SDK" und "Scripts" finden wir unterschiedliche Scripte, die den Input des Ouya-Controllers ermöglichen. Uns interessieren nur die Scripte "OuyaExampleCommon", "OuyaKeyCodes" und "OuyaSDK". Damit Javascript auf diese Scripte zugreifen kann, müssen diese im "Plugin" Ordner unseres Projektes liegen. Daher markieren wir die 3 Dateien und verschieben diese in den Ordner Plugins: Nun ist das Ouya-Plugin darauf vorbereitet, den Input auch an Javascript weiterzugeben. 2. Input in Scripten Vom Standart-Unity Input kennen wir diesen Code um Tasten bzw. Achsen abzufragen: function Update () { //Input von Tasten if (Input.GetKey ("up")) print ("up arrow key is held down"); if (Input.GetKey ("down")) print ("down arrow key is held down"); //Input von Achsen var h : float = horizontalSpeed * Input.GetAxis ("Mouse X"); var v : float = verticalSpeed * Input.GetAxis ("Mouse Y"); } Die Ouya versteht dies nicht, stattdessen sieht ein Ouya-Input etwa so aus: if(OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_O, OuyaSDK.OuyaPlayer.player1){ weiter= false; } Dem aufmerksamen Betrachter fällt sofort, auf, dass wir auf das vorher verschobene Script "OuyaExampleCommon" zugreifen, um den Input zu erhalten. Dieses Script bekommt die Informationen vom Controller, und kann diese an unsere Scripte weiterleiten. Der obige Input ist in 3 Teile, die es zu verändern gibt aufgeteilt: OuyaExampleCommon.GetButton(){} Hier erklären wir was wir für einen Input bekommen wollen, ähnlich dem Unity Input. Dieses hat jedoch weit mehr Auswahlmöglichkeiten wie "GetKeyUp" oder "GetKeyDown". Bei der Ouya stehen nur "GetButton" und "GetAxis" zur Verfügung. Die Möglichkeiten mit "Up" lassen sich aber schnell mit ein wenig Coden realisieren. Nun gehen wir in die Klammer: (OuyaSDK.KeyEnum.BUTTON_O, ... Hier werden nun, wieder ähnlich dem Unity Input, Informationen gegeben, um welchen Knopf oder welche Taste es sich handelt. Dabei muss bei einer Taste nur die hinterste Stelle abgeändert werden, bei einer Achse heißt es etwa: (OuyaSDK.KeyEnum.AXIS_LSTICK_Y, ... Eine genaue Auflistung der Knöpfe und Achsen findet Ihr unten. Hinter dem Komma in der Input-Klammer werden nun noch Informationen über den Spieler mitgegeben. Die Ouya kann mit bis zu 4 Controllern verbunden werden, das heißt es können bis zu 4 Spieler gleichzeitig in einem Spiel spielen. ..., OuyaSDK.OuyaPlayer.player1) Hier wird der Input vom Spieler 1 abgefragt. Sollte euer Spiel nur für einen Spieler sein, reicht es diesen Code standartmäßig einzusetzen. Wir ersetzen nun alle Input-Befehle in unserem Projekt durch die Ouya-Input-Befehle. Dann kann das Spiel auch schon gesteuert werden. 3. Ouya-Icon Die Ouya zeigt in der App übersicht die Spiele mit einem länglichen Bild an. Dieses Icon müssen wir noch ersetzen, das Standart Android-Icon reicht leider nicht aus. Wir finden die Datei im Plugins Ordner: Diese Datei ersetzen wir durch unser eigenes Icon (Name und Auflösung sollten gleich bleiben, also am besten das vorhandene bearbeiten). Fertig ist unsere Portierung! 4. Input Tabelle Im nachfolgenden ist noch eine von mir erstellte Übersicht über alle möglichen Inputs des Ouya-Controllers: //Joypads: OuyaSDK.KeyEnum.AXIS_LSTICK_X //Links-Rechts mit dem linken Joypad OuyaSDK.KeyEnum.AXIS_LSTICK_Y //Hoch-Runter mit dem linken Joypad OuyaSDK.KeyEnum.AXIS_RSTICK_X //Links-Rechts mit dem rechten Joypad OuyaSDK.KeyEnum.AXIS_RSTICK_Y //Hoch-Runter mit dem rechten Joypad //D-Pad OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT //D-Pad Richtung Links OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT//D-Pad Richtung Rechts OuyaSDK.KeyEnum.BUTTON_DPAD_UP //D-Pad Richtung Oben OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN //D-Pad Richtung Unten //SchulterTasten OuyaSDK.KeyEnum.BUTTON_LB //Linke, obere Schultertaste OuyaSDK.KeyEnum.BUTTON_LT //Linke, untere Schultertaste OuyaSDK.KeyEnum.BUTTON_RB //Rechte, obere Schultertaste OuyaSDK.KeyEnum.BUTTON_RT //Rechte, untere Schultertaste //Sonstige OuyaSDK.KeyEnum.BUTTON_O //Grüner O Button OuyaSDK.KeyEnum.BUTTON_U //Blauer U Button OuyaSDK.KeyEnum.BUTTON_Y //Gelber Y Button OuyaSDK.KeyEnum.BUTTON_A //Roter A Button OuyaSDK.KeyEnum.BUTTON_L3 //Linkes Joypad gedrückt OuyaSDK.KeyEnum.BUTTON_R3 //Rechtes Joypad gedrückt Hat mir Spaß gemacht, mein erstes Tutorial hier zu schreiben, und ich hoffe ich konnte jemanden weiterhelfen Viel Spaß! 2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AgentCodeMonk Geschrieben 16. Juni 2013 Melden Share Geschrieben 16. Juni 2013 Verlinke doch dieTutorials noch miteinander... Dann ist das Gesuche in Zukunft nicht so groß. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
schoen08 Geschrieben 16. Juni 2013 Autor Melden Share Geschrieben 16. Juni 2013 Gute Idee Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Gassi Geschrieben 16. Juli 2013 Melden Share Geschrieben 16. Juli 2013 In deiner Auflistung fehlen noch die Achsen der Bumper, oder haben die keine Achsen? :S Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.