[英]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.