NUGI学习笔记--实时获取并操作UIkeynavigation选中的object
来源:互联网 发布:js同源是什么意思 编辑:程序博客网 时间:2024/06/06 00:57
功能介绍:
如图,全键盘控制,UIkeynavigation选择rounds,coins,music这些button,回车键选择相应的编辑框,按上下键修改label的数值,再按回车键退出选择的编辑框
先看看UIkeynavigation的源码:
protected virtual void OnClick () { if (NGUITools.GetActive (this) && NGUITools.GetActive (onClick)) { UICamera.selectedObject = onClick; EditActiveValue.isActive = islabel(); editActiveValue.activeObject = onClick; } }
onClick就是我们要获取的object
接下来新建脚本EditActiveValue.cs,并修改源码,将onClick通过引用传递到新建的脚本当中
EditActiveValue.cs代码如下:
using UnityEngine;using System.Collections;public class EditActiveValue : MonoBehaviour { //要编辑的object public GameObject activeObject = null; //object上的UIlabel组件 private UILabel label; //只有当选中编辑框的时候,才能在update()中修改label中的text public static bool isActive = false; // Update is called once per frame void Update () { if(isActive) Edit( ref activeObject ); } public void Edit(ref GameObject activeObject) { if(activeObject == null ) return; if(activeObject.tag.CompareTo("label") == 0) { label = activeObject.GetComponent<UILabel>(); if (Input.GetKeyDown (KeyCode.DownArrow)) { int temp; int.TryParse(label.text, out temp); temp--; label.text = temp.ToString(); } if (Input.GetKeyDown (KeyCode.UpArrow)) { int temp; int.TryParse(label.text, out temp); temp++; label.text = temp.ToString(); } } }}
为了不修改源码,新建一个脚本NewUIkeynavigation.cs,继承UIkeynavigation类,代码如下:
using UnityEngine;using System.Collections;public class NewUIKeyNavigation : UIKeyNavigation { public EditActiveValue editActiveValue; void Start() { editActiveValue = GameObject.Find ("EditActiveValue").GetComponent<EditActiveValue> (); } protected override void OnClick () { if (NGUITools.GetActive (this) && NGUITools.GetActive (onClick)) { UICamera.selectedObject = onClick; EditActiveValue.isActive = islabel(); editActiveValue.activeObject = onClick; } } bool islabel() { if(onClick.GetComponent<UILabel>() != null) { return true; } else { return false; } }}
0 0
- NUGI学习笔记--实时获取并操作UIkeynavigation选中的object
- Jquery学习笔记-获取select标签已经选中的值
- WPF学习笔记:获取ListBox的选中项
- NUGI
- NUGI聊天功能的实现
- checkbox 操作【全选 获取选中的值】
- radio 默认选中, 第二次点击选中的按钮 改变为不选中,并获取值
- checkbox 选中,取消选中判断,并获取所有checkbox 选中的值
- ExtJs学习笔记(7)_获取GridPanel选中行的详细信息
- gridview获取选中列的例子并打印出来
- listview长按事件 并获取选中行的值
- ListView添加事件并获取选中项的值
- jquery获取checkbox的值并判断是否选中
- 下拉框多选实现 jquery-multiselect 并获取选中的值
- ListView添加事件并获取选中项的值
- android ListView添加事件并获取选中项的值
- jqgrid--获取所有选中的行并删除之
- 获取系统联系人并返回某个选中的联系人
- hadoop下使用eclipse进行编程遇到的一个小问题
- list中删除元素的方法:pop(x)和remove(x)
- p51 9. 判断点到圆心的距离
- C++类内各种变量的初始化
- 【设计模式】责任链2-更好的解决问题
- NUGI学习笔记--实时获取并操作UIkeynavigation选中的object
- 设置Table Cell的背景图的类
- 黑马程序员——JAVA 数组
- LGame学习笔记1-----LGame游戏引擎大体架构
- C++第十题20150327
- p51 8
- [Android]网络数据的简单加密
- 性能优化:使用SparseArray代替HashMap<Integer,Object>
- 如何将C#/.NET 将json字符串格式数据转换成对象