繁体   English   中英

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

[英]Unity UI Button has insane transition state behaviour - it remains highlighted after being clicked

我花了一段时间才弄清楚Unity UI Button Transition的问题:

问题:我将鼠标悬停在按钮对象上,它进入突出显示状态,这很好。 如果我在按钮上按下鼠标,鼠标进入按下状态,那么我将鼠标移出按钮,使其不再位于按钮上方。 该按钮将转为突出显示状态,而不是正常状态。 我需要在空白处单击以获取按钮的正常状态。

TLDR:

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

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

在此处输入图片说明

当前,它设置为Automatic 根据文档 ,您要使用的选项是None ,结果是:

没有键盘导航。 还要确保它不会因单击/点击而获得焦点。

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

如果您想使用键盘导航并且也摆脱了这个问题,可以添加以下功能进行更新:

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

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

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

您可以添加检查以仅取消选择gameObject如果已选择)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM