UGUI中按Tab切换InputField
2015-12-15 22:02
405 查看
本文转自风冻冰痕博客,固定链接: http://icemark.cn/blog/?p=253
目前的UGUI在InputField里即使设置了Navigation也是不可以用键盘切换上下,所以自己写了个组件实现这个功能
前提条件是要在InputField里设置Navigation,也就是必须能找到上一个控件和下一个控件
然后将以下脚本挂在需要切换的InputField上,用Tab和Shift+Tab切换:
目前的UGUI在InputField里即使设置了Navigation也是不可以用键盘切换上下,所以自己写了个组件实现这个功能
前提条件是要在InputField里设置Navigation,也就是必须能找到上一个控件和下一个控件
然后将以下脚本挂在需要切换的InputField上,用Tab和Shift+Tab切换:
using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class InputNavigator : MonoBehaviour, ISelectHandler, IDeselectHandler { EventSystem system; private bool _isSelect = false; void Start() { system = EventSystem.current; } void Update() { if (Input.GetKeyDown(KeyCode.Tab) && _isSelect) { Selectable next = null; if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { next = system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnUp(); if (next == null) next = system.lastSelectedGameObject.GetComponent<Selectable>(); } else { next = system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnDown(); if (next == null) next = system.firstSelectedGameObject.GetComponent<Selectable>(); } if (next != null) { InputField inputfield = next.GetComponent<InputField>(); system.SetSelectedGameObject(next.gameObject, new BaseEventData(system)); } else { Debug.LogError("找不到下一个控件"); } } } public void OnSelect(BaseEventData eventData) { _isSelect = true; } public void OnDeselect(BaseEventData eventData) { _isSelect = false; } }
相关文章推荐
- IOS之UITableView实现Section独立封装
- UI16-通过Xcode将代码提交到github上, 把仓库放在github上
- UI15-存储路径
- 59.UIView动画(layer层)
- SystemUIDialog 小结
- UI_数据库
- error:loading /system/media/audio/ui/Effect_Tick.ogg
- 1041 Be Unique
- 进击的KFC:UI(14)集合视图UICollectionView
- 进击的KFC:UI(13)多线程
- 进击 的KFC:UI(12)动画
- NameValuePair is deprecated in API 22
- IOS基础-UITableViewController
- Arduino - 我偏爱的三块板子( Uno、Nano、Promini)针脚示意图
- 58.UIView动画第二章(简单)
- 利用UGUI实现 显示/隐藏密码 功能
- Android Service更新UI的方法之Messenger
- leetcode:225 Implement Stack using Queues-每日编程第二十六题
- 随意细解:UI -- 动画
- Leetcode195: Range Sum Query - Mutable