大部分情况下,仅仅的单击事件OnClick()不能满足我们的要求的时候,我们一般会使用两种方法
1.使用SendMessage
选择按钮后,在Unity导航菜单栏中选择Component->Interaction->Button Message 组件。
Target:接收按钮消息的游戏对象。
Function Name:接收按钮消息的方法,拥有这个方法的脚本必须绑定在上面Target对象身上。
Trigger:触发的事件,OnClick显然是一次点击。
Include Children :是否让该对象的所有子对象也发送这个点击事件。
2.使用UIListener 和UIEventTirgger
只要把双击事件绑定上来就可以了。
在这里,楼主想要实现一个双击装备物品则让主角穿戴装备。这时使用了UIEventTirgger中的OnDoubleClick
但是当每次双击事件发生之后,总会发现有错误信息的错乱。后来才发现,其实,这个doubleClick里面的事件居然执行了两次。由于穿戴之后数据已经清空,第二次执行的时候导致的数据不存在的问题。
这也够坑的,双击事件不就是点击了两次鼠标执行一次才叫双击。如果执行两次,那和执行两次OnClick方法有什么区别。
所以,楼主建议如果使用这个方法的时候,使用一个标志位来识别。第一次双击的时候才起作用就行了。
当然,可能是我的问题,也有可能是NGUI版本的问题。目前使用的是3.7.2