Jump to content
Unity Insider Forum

OUYA Entwicklung mit Unity: Teil 2


schoen08

Recommended Posts

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:

 

9.png

 

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:

 

10.png

 

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ß!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...