Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

1

31.05.2016, 19:14

Unity - xbox360 Controller im InputManager fehlerhaft?

Hallo,
ich habe für Unity eine xbox360-Controller Steuerung ausprobiert. Das Ganze habe ich nach diesem Schema der ButtonMap gemacht:

http://wiki.unity3d.com/index.php?title=Xbox360Controller

Das Ganze funktioniert auch wunderbar, man kann den Spieler steuern, springen etc. nur reagieren folgende Tasten noch nicht:

Die D-Pad-Tasten und die beiden hinteren Tasten R2 und L2.

Testen tue ich das mit diesem kleinen Code ..

C#-Quelltext

1
2
3
4
if (Input.GetButtonDown("KreuzHorizontal"))
        {
            Debug.Log("Taste wurde gedrückt");
        }

Oder Input.GetAxis ...

Dem Bild des Schemas entnehme ich, dass R2 und L2 auf der 3. Achse liegen. D-Pad Vertikal belegt die 6. Achse, D-Pad Horizontal belegt die 7. Achse.

Im Inputmanager habe ich mir die Tasten so eingestellt, wie man es in den beigefügten Bildern sieht, wäre cool wenn jemand weiß was noch eingestellt werden muss :)
»Garzec« hat folgende Bilder angehängt:
  • Kreuztasten.png
  • Buttons.png

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

2

31.05.2016, 19:23

Das D-Pad funktioniert mit Achsen (-1 und 1), d.h. du musst mit Input.GetAxis arbeiten. Ich glaube das selbe gilt für die Trigger. Bei den Triggern ists ja offensichtlich, schließlich kannst du sie auch nur ein bisschen drücken. Beim D-Pad ist es anderen Sachen geschuldet. Wenn das nicht helfen sollte, versuch positive/negative Buttons zu konfigurieren.
WIP Website: kevinheese.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KeksX« (31.05.2016, 19:29)


Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

3

31.05.2016, 21:11

Hi,
ja du hast Recht, R2 und L2 reagieren auf Achsen. Über den Code

C#-Quelltext

1
movementVector.z = Input.GetAxis("L2Button") * -movementSpeed;


Konnte ich mal kurz testen, ob die Tasten jetzt funktionieren, logischerweise kann man sich mit diesem Code nur schräg bewegen aber das ist ja auch nicht das Ziel ;)

Jetzt muss ich noch deinen Vorschlag mit dem D-Pad testen

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

4

31.05.2016, 21:16

Noch ein kleiner Nachtrag.

Ohne jeglichen Input rutscht die Figur auf der Fläche lang, also sie bewegt sich von alleine.
Wenn ich die Sensitivität im InputManager runterstelle bleibt sie stehen. Bei höherem Wert fängt sie an sich von alleine zu bewegen. Weiß jemand ob die Tasten des Controllers schlecht kalibriert sind oder woran das liegt?

Edit: Auch das D-Pad funktioniert nun nach deinem Vorschlag :) Fehlt also nur diese selbständige Bewegung ohne jeglichen Input bei Programmstart.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Garzec« (31.05.2016, 21:25)


CentuCore

Frischling

Beiträge: 43

Wohnort: Wien

  • Private Nachricht senden

5

31.05.2016, 22:01

Es ist mWn recht normal, dass die Achsen immer ein wenig ausscheren.
Entweder ist die Federung von Anfang nicht perfekt oder sie lässt mir der Zeit nach.
Deswegen gibt es Deadzones (Sensitivität) um das per Software zu umgehen.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

6

31.05.2016, 22:29

Jo, der Punkt beim Input dafür heißt "Dead", dort kannst dus einstellen. Aus der Docu:

Zitat

Dead Any positive or negative values that are less than this number will register as zero. Useful for joysticks.


http://docs.unity3d.com/Manual/class-InputManager.html
WIP Website: kevinheese.de

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

7

01.06.2016, 06:38

Morgen,
jap, wenn ichs bei Dead auf 0,5 stelle funktionierts :)

Werbeanzeige