Jump to content
Unity Insider Forum

Button Highlighten


Recommended Posts

Ich möchte gerne das mein erster Button in Inventar beim aufrufen gehighlited wird. Habe es mit :

var eventSystem = EventSystem.current;
eventSystem.SetSelectedGameObject(FirstButton, new BaseEventData(eventSystem));

und mit
 

FirstButton.Select();

versucht. Beides macht irgendwie das selbe.
Beim ersten Spielstart und beim ersten mal aufrufen des Inventars funktionert alles einwandfrei. Nun aber wenn ich das Inventar schliesse und erneut aufrufe, bin ich zwar technisch an der richtigen Position, sprich ich kann normal navigieren und bin auch an der gewünschten Position und ich kann den Button auch mit Enter triggern, aber der Knopf wird nicht mehr gehighlightet. Ich bekome auch kein Feedback über den ISelectHandler.

Irgendwie scheint Button.Select() nicht das gleiche zu machen, als wie wenn man den Button mit den Pfeiltasten anwählt.

Was mich eben verwirrt ist, dass es beim ersten mal geht und danach nicht mehr.

 

Edit:
Oder gibt es eine andere Möglichkeit einen Default Button zu bestimmen? Der Grund liegt lediglich darin damit ich mit dem Gamepad/Pfeiltasten navigieren kann.

Edit2:

Hab das jetzt mal so gelöst:
 

            var eventSystem = EventSystem.current;
            var selectedButton = eventSystem.currentSelectedGameObject;
            if (selectedButton == null)
            {
                eventSystem.SetSelectedGameObject(FirstButton, new BaseEventData(eventSystem));
                currentButton = FirstButton.GetComponent<Button>();
                currentButton.OnSelect(null);
            }
            else
            {
                eventSystem.SetSelectedGameObject(selectedButton, new BaseEventData(eventSystem));
                currentButton = selectedButton.GetComponent<Button>();
                currentButton.OnSelect(null);
                
            }

bin für Verbesserungen gerne offen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Möchte das Thema nochmals aufgreifen, da ich nur

 public void OnDeselect(BaseEventData data)

und

  public void OnSelect(BaseEventData eventData)

gefunden habe. Gibt es eine möglichkeit, wie z.B. bei den Colliders "OnTriggerStay" ? Nur eben auf die Buttons bezogen?
Mein Problem liegt darin, dass ich beim schliessen des Inventars kein "OnDeselect" bekomme, was zu Problemen führt.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...