Unity:在显式导航中使用自动导航

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity:在显式导航中使用自动导航相关的知识,希望对你有一定的参考价值。

我想对应用程序中的所有按钮使用显式导航。但是对于我想要的一些按钮,请选择“选择右侧”以使用自动导航(例如:我知道左,上,下的下一个按钮,但我不知道下一个右按钮)。

答案

您需要创建一个自定义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();
        }
    }
}

以上是关于Unity:在显式导航中使用自动导航的主要内容,如果未能解决你的问题,请参考以下文章

postgres 自动增量未在显式 id 插入时更新

从一个片段移动到另一个片段时如何自动选择底部导航?

unity自动化流程之代码修改导航网格参数

unity自动化流程之代码修改导航网格参数

如何使用Unity做游戏中的寻路导航

Unity导航