我花了一些时间来弄清楚Unity UI按钮转换的问题:
问题: 我将鼠标悬停在按钮对象上,进入突出显示的状态,这很好。如果我按下按钮上的鼠标并进入按下状态,那么我将鼠标移到按钮外面,使其不再超过按钮。按钮进入突出显示状态而不是正常状态。我需要在空白处单击才能获得正常的按钮状态。
TLDR:
答案 0 :(得分:2)
这是Unity中Button元素的默认行为 - 它在初始交互后保留焦点,使其显示突出显示的颜色。单击可清除焦点,因此不再突出显示焦点。
要更改此行为,您可以切换导航设置。
目前,它已设置为自动。根据{{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
。