UICamera

参考官网:http://www.tasharen.com/forum/index.php?topic=6711


基于 NGUI3.0.7


UICamera是NGUI的核心,主要用于处理输入事件并调用对应物体的OnClick、OnDrag等方法。虽然由于兼容原因该组件名字前缀为UI,实际上它能作用于场景中其他物体(前提是该物体带碰撞体且它的Layer属于Event Mask)。它有两个重要的属性:


①Event Type  排序点击区域(ScreenPoint)的物体,决定哪个能够优先接收事件

UI  根据Depth(原理是点击后用Physics.RaycastAll返回所有物体,并根据Depth进行排序)

World  根据与附着Camera的距离(原理是点击后用Physics.Raycast返回最近的单个物体)


②Event Mask  决定能够接受事件的Layer


当要调用物体的特定事件(OnClick等)时,它就调用Notify方法,通过SendMessage向物体发送参数:

    void Test()
    {
        if(Input.GetMouseButtonDown(0))
            Notify(currentTouch.pressed, "OnClick", null);
    }

	static public void Notify (GameObject go, string funcName, object obj)
	{
		if (go != null)
		{
			go.SendMessage(funcName, obj, SendMessageOptions.DontRequireReceiver);

			if (genericEventHandler != null && genericEventHandler != go)
			{
				genericEventHandler.SendMessage(funcName, obj, SendMessageOptions.DontRequireReceiver);
			}
		}
	}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值