NGUI中如何获取当前点击的物体
2014-05-05 15:29
106 查看
NGUI中如何获取当前点击的物体
2013-05-14 17:19:46| 分类: Unity|举报|字号 订阅NGUI的UICamera中定义了一个内部类MouseOrTouch表示当前的输入设备:鼠标,Touch,或是游戏杆。
//begin源代码//
public class MouseOrTouch
{
public Vector2 pos; // Current position of the mouse or touch event
public Vector2 delta; // Delta since last update
public Vector2 totalDelta; // Delta since the event started being tracked
public Camera pressedCam; // Camera that the OnPress(true) was fired with
public GameObject current; // The current game object under the touch or mouse
public GameObject pressed; // The last game object to receive OnPress
public float clickTime = 0f; // The last time a click event was sent out
public ClickNotification clickNotification = ClickNotification.Always;
public bool touchBegan = true;
public bool pressStarted = false;
public bool dragStarted = false;
}
//end源代码//
在MouseOrTouch中定义了当前点击的物体:current
当我们点击某个物体时,只需要调用UICamera.currentTouch.current即可获取具体点击的是哪个物体。
这个方法是为了在不同的按钮使用同一点击事件时非常有效。
例如:在滚动列表子项中的所有按钮的响应事件都为OnUpgradeBtnClick。在OnUpgradeBtnClick中调用 UICamera.currentTouch.current即可获取我点击的具体按钮。从而知道他的数据:UIData uiData = curObject.transform.parent.GetComponent<UIData>();
for (int i = 0; i < list.Count; i++) {
SerEquip equip = list [i];
GameObject upgradeItem = NGUITools.AddChild (upGradeTable.gameObject, PrefabMgr.Instance ().GetPrefab ("GUI/Main/Equipment/Item/UpgradeItem"));
UIData uiData = upgradeItem.AddComponent<UIData> ();
uiData.Data = equip;
//UpgradePanel下的upgrade按钮的响应函数//
GameTools.EventClick (upgradeItem, "upGradeBtn", wndObject, "OnUpgradeBtnClick");
}
//升级面板 下upgrade按钮响应函数//
public void OnUpgradeBtnClick()
{
GameObject curObject = UICamera.currentTouch.current;
UIData uiData = curObject.transform.parent.GetComponent<UIData>();
WndMgr.Instance().ToggleWnd((int)UIType.Equip);
UpgradeWnd upgradeWnd = (UpgradeWnd)WndMgr.Instance().ShowWnd((int)UIType.Upgrade);
upgradeWnd.SetEquip((SerEquip)uiData.Data);
}
相关文章推荐
- JavaScript如何获取当前点击对象节点
- iOS中如何通过点击UITableViewCell中的Button来获取当前Cell的indexPath
- jquery如何获取当前点击的标签下标
- 【NGUI】Unity中如何判断NGUI中当前鼠标是否点击UI上
- 点击UICollectionViewCell上的UIButton如何获取当前的UICollectionViewCell?
- Treeview的click事件中,如何知道当前点击的是子结点,并且如何获取子结点的标题?
- ListView,点击每一个Item,如何获取当前Item的数据?
- jquery 获取点击事件的id;jquery如何获取当前触发事件的控件ID值
- 如何获取当前点击元素的某个子元素
- 如何获取当前编译的文件标题和行数
- jquery如何通过name名称获取当前name的value值
- 如何在silverlight中以同步方式 获取sharepoint2013站点的当前登录账号
- 如何获取程序当前目录
- 如何准确获取输入框的当前内容
- 如何用 JavaScript 获取当前 URL 的文件名
- C#如何获取鼠标相对当前窗口的坐标
- mysql 如何获取数据库当前时间
- 如何获取当前时间的前N天时间格式字符串
- 如何获取ul 中li选中的值点击button按钮跳转链接
- 如何获取当前进程所在目录的方法