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

14.06.2016, 20:40

[Unity] Input des Joysticks soll Animation auslösen

Hallo,
ich habe eine Frage bezüglich des Joystick Inputs bei Animationen. Gesteuert werden meine Animationen über diese Zeilen

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 private void Update()
    {
        if (Input.GetButtonDown("XButton") && _onGround)
        {
            //Sprunganimation
            anim.SetInteger("AnimationsParameter", 2);
        }
        else
        {
            //Idleanimation
            anim.SetInteger("AnimationsParameter", 0);
        }

        if ((Input.GetAxis("LeftJoystickHorizontal") || Input.GetAxis("LeftJoystickVertical")) && _onGround)
        {
            //Laufanimation
            anim.SetInteger("AnimationsParameter", 1);
        }
        else if (_onGround)
        {
            //Idleanimation
            anim.SetInteger("AnimationsParameter", 0);
        }
    }


Fehlerhaft ist nur diese Zeile

C#-Quelltext

1
2
3
4
5
if ((Input.GetAxis("LeftJoystickHorizontal") || Input.GetAxis("LeftJoystickVertical")) && _onGround)
        {
            //Laufanimation
            anim.SetInteger("AnimationsParameter", 1);
        }


Das ich über den Input die Abfrage nicht steuern kann, ist mir klar. Aber wie kann ich über das Bewegen der Figur sonst die Animation auslösen =?
Ich muss es ja über den Joystick steuern oder nicht?

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

14.06.2016, 21:55

GetAxis gibt dir einen Wert zwischen -1 und 1, je nachdem wie weit du den Analog Stick nach Links/Rechts bzw. Unten/Oben bewegt hast. Wenn du das als Bedingung willst, musst du prüfen ob der Wert einen gewissen Schwellenwert überschreitet bzw. unterschreitet. Mit < bzw. > 0 wird es nicht gehen, da es immer einen gewissen Ungenauigkeitsfaktor gibt, so dass der Wert nie genau 0 ist.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

3

15.06.2016, 09:52

Ich sehe bereits in der vorhandenen Denkweise Probleme. Mit dem Input steuerst du deinen Charakter und die Animationen visualisieren die Bewegung des Charakters. Statt die Bedingungen so zu basteln, dass darin die Animationen angestuert werden können, sollte anhand des Inputs bestimmt werden, wie sich der Charakter bewegen wird (bspw. Richtungsvektor), und daran sollten dann die Animationen angepasst werden.
Weiterhin sollten die Inputs nicht einfach nach den Hardware-Tasten benannt werden. Einerseits sollte das Problem ersichtlich werden, wenn man mehrere Tasten für die gleiche Aktion haben will, andererseits wenn man als Entwickler oder als Spieler die Tastenbelegung ändern will, andererseits könnte man durch eine ordentliche Benennung besser nachvollziehen, was die Achsendefinitionen in den Input-Einstellungen bedeuten sollen.
Was soll bspw. "AnimationsParameter" bedeuten? Was wird damit gesteuert?

Mit < bzw. > 0 wird es nicht gehen, da es immer einen gewissen Ungenauigkeitsfaktor gibt, so dass der Wert nie genau 0 ist.
Wenn die Deadzone richtig definiert ist, dann geht das. (Und da die Standardeinstellung bei den Unity-Achsen so aussieht, kann man grundsätzlich davon ausgehen.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

4

15.06.2016, 14:42

Ich habe mich mit dem Thema noch nicht befasst, habe mir erstmal meine eigene Figur gebastelt und aus der Not heraus mal rumgespielt :D Der Animationsparameter ist einfach ein Integer der halt bei 0 eine Animation abspielt, bei 1 eine andere und bei 2 wieder eine andere. Ich denke das ist so nicht richtig und geht bestimmt viel besser, aber das muss ich mir erst anschauen ;)

Ziel war es erstmal eine laufende Figur zu erstellen um zu testen, wie sie sich bei meiner Gamepadsteuerung verhält etc.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

15.06.2016, 17:46

In den Standard Assets ist bereits ein Beispiel für eine per Controller gesteuerte Figur: Third Person Controller
Einfach das Prefab in die Szene ziehen und an diesem anschauen, wie sowas aufgebaut sein könnte.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige