Die Schaltfläche bleibt nach dem Klicken hervorgehoben - Unity3D 4.6 GUI

8

Manchmal bleibt die Schaltfläche nach dem Klicken auf eine Schaltfläche, die mit der neuen UI-Schaltfläche von Unity erstellt wurde, im hervorgehobenen Zustand. Beachten Sie, dass das Button-Skript Color Tintals TransitionEigenschaft festgelegt wurde und das InteractableKontrollkästchen aktiviert ist.

Wie kann ich das lösen?

Varaquilex
quelle

Antworten:

12

Die NavigationEigenschaft von Schaltflächen ist Automaticstandardmäßig festgelegt, sodass Sie mit den Pfeiltasten durch die Schaltflächen navigieren können.

Wenn Sie dies deaktivieren, indem Sie die NavigationEigenschaft in ändern None, bleiben die Schaltflächen nicht hervorgehoben.

Varaquilex
quelle
Etwas wichtig , um es hinzuzufügen: Wenn Sie das Set Navigationan None, Sie 1. nicht Ihre Tastatur verwenden oder Controller zu navigieren zu / von ihm und 2. versuchen , es zu bekommen , GameObject.Findwerden irgendeine Art von Objekt zurück, das nicht wirklich brauchbar ist weil alles daran ist null. Im Grunde genommen: Wenn Sie verwenden None, müssen Sie die Schaltfläche entweder auf eine öffentliche Variable im Inspektor ziehen oder die Schaltfläche zur Laufzeit instanziieren, um eine funktionierende Referenz darauf zu erhalten. Getestet mit Unity 2017.3.1f1.
Neph
1

(Zusätzlich zur akzeptierten Antwort ist dies eine weitere Antwort, wenn Sie die NavigationEigenschaft von Schaltflächen Nonein Ihrem Kontext nicht festlegen können .)

Sie können UnityEngine.EventSystem.SetSelectedGameObjectdie Schaltfläche auch manuell deaktivieren. Zum Beispiel:

private void DeselectClickedButton(GameObject button)
{
    if (EventSystem.current.currentSelectedGameObject == button)
    {
        EventSystem.current.SetSelectedGameObject(null);
    }
}
Sonny
quelle