Unity UI按钮具有疯狂的过渡状态行为 - 单击后仍保持突出显示

时间:2016-11-23 15:17:04

标签: user-interface button unity3d

我花了一些时间来弄清楚Unity UI按钮转换的问题:

问题: 我将鼠标悬停在按钮对象上,进入突出显示的状态,这很好。如果我按下按钮上的鼠标并进入按下状态,那么我将鼠标移到按钮外面,使其不再超过按钮。按钮进入突出显示状态而不是正常状态。我需要在空白处单击才能获得正常的按钮状态。

TLDR:

3 个答案:

答案 0 :(得分:2)

这是Unity中Button元素的默认行为 - 它在初始交互后保留焦点,使其显示突出显示的颜色。单击可清除焦点,因此不再突出显示焦点。

要更改此行为,您可以切换导航设置。

enter image description here

目前,它已设置为自动。根据{{​​3}},您要使用的选项是,结果是:

  

没有键盘导航。还可以确保点击/点击它不会获得焦点。

希望这有帮助!如果您有任何问题,请告诉我。

答案 1 :(得分:1)

如果您想使用键盘导航并解决此问题,可以添加此功能进行更新:

void Update()
{
    if (Input.GetMouseButtonUp(0))
    {
        EventSystem.current.SetSelectedGameObject(null);
    }
}

答案 2 :(得分:0)

要保留键盘自动导航,您可能希望从IPointerExitHandler继承并在退出时取消选择:

public void OnPointerExit(PointerEventData data)
{
    EventSystem.current.SetSelectedGameObject(null);
}

您可以添加支票,只有在选中时才会取消选择gameObject