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

问题描述 投票:2回答:1

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

unity3d navigation
1个回答
3
投票

您需要创建一个自定义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();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.