Unity3D 使用“Shift+Tab”和“Tab”键 上下切换 UGUI下 Dropdown和inputfield等控件的控制顺序
来源:互联网 发布:淘宝卖假货被公安抓了 编辑:程序博客网 时间:2024/05/22 00:49
1. 常见问题:如果发现这个tab键按下时,跳转2个输入框,在project中,右键此脚本,选择Find References In Scene,肯定某一时刻同时有两个gameobject绑定了此脚本。
效果图如下:
要实现,选完“分类”下拉框内容后,按一下tab键,光标直接跳转单位名称一栏,
按到最下方“联系电话”一栏后,在从“分类”栏进行循环;按住左(或者右)shift,在按下tab键,光标进行向上跳转!
第一步:设置这些UI控件的navigation属性,原来的Automatic改成Explicit,如图:
第二步:进行如下设置
第三步:这些UI控件,选其一绑定如下脚本
using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;/// <summary>///2017年3月31日10:30:19/// 阿祥 unity 5.3.6///Unity3D 使用“Shift+Tab”和“Tab”键 上下切换 panel下 Dropdown和inputfield等控件的控制顺序/// </summary>public class InputNavigator : MonoBehaviour, ISelectHandler, IDeselectHandler{ EventSystem system; private bool _isSelect = false; private bool isGetOneMessage=false; void Start() { system = EventSystem.current; } void Update() { #region //监测Tab按下,此时应该选择下一个UI控件 if (Input.GetKeyDown(KeyCode.Tab)) { Selectable next = null;//下一个ui控件 Selectable current = null;//当前的ui控件 //验证当前是否有正在选中的物体 if (system.currentSelectedGameObject != null) { //验证当前选中的物体在层次列表里是否可用 if (system.currentSelectedGameObject.activeInHierarchy) { current = system.currentSelectedGameObject.GetComponent<Selectable>(); } } if (current != null) { //当左(右)shift被按住,并且伴随着,点击tab键,光标依次向上移动 if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { next = current.FindSelectableOnUp(); if (next == null) { next = current.FindSelectableOnLeft(); } } else { next = current.FindSelectableOnDown(); if (next == null) { next = current.FindSelectableOnRight(); } } } else { //如果没有 “当前正在选择的物体”,那么选择第一个可选项 if (Selectable.allSelectables.Count > 0) { next = Selectable.allSelectables[0]; } } if (next != null) { next.Select(); } } #endregion } public void OnSelect(BaseEventData eventData) { _isSelect = true; } public void OnDeselect(BaseEventData eventData) { _isSelect = false; }}
over!
2 0
- Unity3D 使用“Shift+Tab”和“Tab”键 上下切换 UGUI下 Dropdown和inputfield等控件的控制顺序
- UGUI Tab键切换InputField
- UGUI 中Tab切换 InputField
- UGUI中按Tab切换InputField
- UGUI中按Tab切换InputField
- UGUI中按Tab切换InputField
- UGUI中按Tab切换InputField
- UGUI中按Tab切换InputField
- 【VC控件TAB切换顺序】的控制
- 如何控制 VC 中控件间的TAB切换顺序
- 如何控制 VC 中控件间的TAB切换顺序
- 如何控制 VC 中控件间的TAB切换顺序
- 如何控制 VC 中控件间的TAB切换顺序
- 如何控制 VC 中控件间的TAB切换顺序
- Unity 5.4可用的UGUI中按Tab切换InputField脚本
- Unity3D UGUI中的dropdown控件使用总结
- C#TabCotrol控件实现shift+tab的标签切换
- 如何控制表单内tab键切换的顺序
- 基于直方图的图像增强算法(HE、CLAHE、Retinex)之(一)
- 如何巧妙使用PDF转换图片软件
- json工具类
- Android例子—简单定时后台线程的实现
- virtualenv python虚拟环境
- Unity3D 使用“Shift+Tab”和“Tab”键 上下切换 UGUI下 Dropdown和inputfield等控件的控制顺序
- zookeeper 集群重启之后无法使用
- linux下用phpize给PHP动态添加扩展
- 为什么手机无法运行应用? Values之谜
- 基于直方图的图像增强算法(HE、CLAHE、Retinex)之(二)
- 段错误产生原因;和;计算机大端小端概念和判别方法
- 使用BigDecimal进行精确计算工具类
- 智能指针RefBase、sp、wp原理与简单应用
- ELK系列一:CentOS7安装elasticsearch5.x