Jump to content
Unity Insider Forum

Button Problem :( ( Gelöst )


w0rks

Recommended Posts

Das Event-System, das zusammen mit dem Canvas funktioniert und dafür da ist, durch Menüs navigieren zu können, basiert auf den Achsen, die im Input Manager angelegt sind. Wenn die Achse, die beim "Event System"-GameObject eingestellt ist, im Input Manager nicht existiert, weint das Ding. Ob wirklich das der Grund dafür ist, dass der Button nicht auf Klicks reagiert, weiß ich gerade nicht. Kann aber sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es hat noch nie geholfen, einfach alles zu löschen und neu zu erstellen, wenn man nicht weiß, was überhaupt los ist!

Also:
Wenn du ein UI Button anlegst und denn als Eingabemedium nutzen willst, brauchst du in deinem EventSystem das SandaloneInputModul.
In diesem Modul sind einige Funktionen voreingestellt, die auf den Inputmanager verweisen. So z.B. Submit und auch Cancel. Das ist wichtig, damit du auch ohne Maus in einer UI navigieren und agieren kannst.
Diese Dinge müssen im Inputmanager genau so angelegt sein und sind es auch wenn du ein neues Projekt beginnst. Du stellst dann im Inputmanager ein welche Buttons oder Achsen dafür genutzt werden sollen.
Das Problem dabei ist, dass du diese InputContainer umbenennen und auch löschen kannst. Und das hast du wahrscheinlich gemacht.
Das ist aber kein Problem, denn du musst einfach nur das Schlüsselwort Cancel neu anlegen und darin einstellen welche Tasten genutzt werden sollen. (Und noch ein paar andere Parameter)

Und jetzt erkläre ich dir mal, wie das so funktioniert:
Um in einem Menü mit der Tastatur oder nem Controller zu navigieren, musst du UIHorizontal, UIVertical, Submit und Cancel definieren. Also welche Buttons, Tasten und links-rechts, hoch-runter Achsen du nutzen willst. Nimm mal an du willst mit den Pfeiltasten der Tastatur im Menü navigieren und mit Return einen Button auslösen und mit Escape aus dem Menü wieder raus gehen.
Sobald du eine der Tasten drückst, die im Inputmanager für etwas definiert ist, meldet sich der Inputmanager und schreit in die Welt, dass z.B. gerade die Taste für Submit gedrückt wurde.
Alle Scripte, die auf dieses Signal hören wissen jetzt bescheid und können etwas im Code ausführen.
Und das macht auch das UI Eventsystem mit dem StandaloneInputmodule. Es lauscht auf die 4 Schlüsselwörter vom Inputmanager, die für das System interessant sind. Alle anderen sind ihm egal.
Wenn es jetzt hört, dass Submit gedrückt wurde, dann weiß es, dass es so tun soll, als würdes du mit der Maus auf einen Button drücken. Es weiß auch welcher Button gerade aktiv ist und ob überhaupt einer aktiv ist. Es wird also dann schon der richtige Button gedrückt und nicht irgendeiner.
Das Eventsystem will aber auch wirklich alle Schlüsselwörter, auf die es hören soll, im Inputmanager sehen. Egal ob du diese Funktionen überhaupt nutzen willst oder nicht.
Und das meckert dein Eventsystem gerade an. Da ist kein Cancel im Inputmanager, also sagt es dir, dass du es gefälligst anlegen sollst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe nicht soo schnell geschrieben. Du hast nur mittendrin einen weiteren Post verfasst. ;)
Du musst jetzt einfach die Size um 1 erhöhen also auf 18 stellen. Dadurch entsteht ein neuer Eintrag ganz unten und der heisst dann so wie der Eintrag davor.
Diesen öffnest du indem du auf das 3eck klickst. Dann benennst du ihn um und stellst die nötigen Dinge ein.
Z.B. so wie auf dem Bild:

cancel.JPG.29d972a85e75f461410f48e369347f8e.JPG

Descriptive-Name und -Negative kannst du frei lassen. Die dienen nur zur Beschreibung.
Du brauchst auch nur die positiven Buttons. Da kannst du 2 vergeben. Den normalen und einen aternativen Button (falls du überhaupt 2 davon willst).
Gravity ist wichtig. Bei Tasten oder Buttons musst du den Wert auf 1000 stellen, denn dieser Wert sagt an, wie schnell er wieder zurück auf den 0 Wert geht. Und das ist eigentlich nur für Achsen von Bedeutung, wenn man will dass der Wert sich über eine gewisse Zeit ändern soll.
Sensitivity ist da genauso. Ja und Dead ist die Deadzone bei analogen Sticks, mit der man definiert, ab welcher Neigung überhaupt ein Signal kommen kann.
Typ ist ja klar, denn es geht ja um Tasten.
Axis ist in diesem Falle unwichtig und JoyNumm lässt du einfach so.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...