Unity UGUI-UnityEngine.UI.Navigation焦点导航

所有具有Selectable功能的UI都有navigation属性,用于控制当前UI具有焦点时,用户按下 ↑↓←→
按键时,焦点从当前UI转移到别的UI上。

UI之间的焦点转换路线,可以点击UI面板上的Visualize按钮显示出来。

Navigation解析:

defaultNavigation返回具有合理默认值的 Navigation。
mode导航模式。
selectOnDown指定一个 Selectable UI GameObject,在按下下箭头键时突出显示。
selectOnLeft指定一个 Selectable UI GameObject,在按下左箭头键时突出显示。
selectOnRight指定一个 Selectable UI GameObject,在按下右箭头键时突出显示。
selectOnUp指定一个 Selectable UI GameObject,在按下上箭头键时突出显示。

navigation.mode:

None无键盘导航。还可以确保单击/点击操作不会获得焦点。
Horizontal水平导航。
Vertical垂直导航。
Automatic自动导航。
Explicit在此模式下,可显式指定不同箭头键将控件导航到的位置。

当mode设置为Explicit时,可设置selectOnDown、selectOnLeft、selectOnRight、selectOnUp对象

导航关系图

在以上可视化模式中,箭头指示如何为整个控件集合设置焦点变化。这意味着,对于每个单独的 UI 控件,如果用户在给定控件具有焦点时按下箭头键,您可以看到接下来将获得焦点的 UI 控件。因此,在上面显示的示例中,如果“Button”具有焦点并且用户按下向右箭头键,则第一个(左侧)垂直滑动条随后将获得焦点。请注意,无法使用向上或向下键将焦点从垂直滑动条上移开,因为这两个键用于控制滑动条的值。水平滑动条和左/右箭头键也是同样道理。

实例:

指定一个 Selectable UI GameObject,在按下下箭头键时突出显示。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;  // Required when Using UI elements.

public class HighlightOnKey : MonoBehaviour
{
    public Button btnSave;
    public Button btnLoad;

    public void Start()
    {
        // 获取导航数据
        Navigation navigation = btnLoad.navigation;

        // 将模式切换到显式,以允许自定义分配的行为
        navigation.mode = Navigation.Mode.Explicit;

        // 如果按下向下箭头键,则突出显示“保存”按钮
        navigation.selectOnDown = btnSave;

        // 将结构数据重新分配给按钮
        btnLoad.navigation = navigation;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值