我想对应用程序中的所有按钮使用显式导航。但是对于我想要的一些按钮,请选择“选择右侧”以使用自动导航(例如:我知道左,上,下的下一个按钮,但我不知道下一个右按钮)。
您需要创建一个自定义Selectable
,如果设置了值,则可以使用显式导航。您可以将此代码用于您的案例,只需在检查器中留下需要使用自动导航的空白字段。
using UnityEngine;
using UnityEngine.UI;
namespace UI.CustomSelectable
{
public class CustomSelectable : Selectable
{
[SerializeField]
private Selectable upSelectable;
[SerializeField]
private Selectable downSelectable;
[SerializeField]
private Selectable leftSelectable;
[SerializeField]
private Selectable rightSelectable;
public override Selectable FindSelectableOnUp()
{
return upSelectable != null ? upSelectable : base.FindSelectableOnUp();
}
public override Selectable FindSelectableOnDown()
{
return downSelectable != null ? downSelectable : base.FindSelectableOnDown();
}
public override Selectable FindSelectableOnLeft()
{
return leftSelectable != null ? leftSelectable : base.FindSelectableOnLeft();
}
public override Selectable FindSelectableOnRight()
{
return rightSelectable != null ? rightSelectable : base.FindSelectableOnRight();
}
}
}