码迷,mamicode.com
首页 > 其他好文 > 详细

NGUI 通过按压Button控制角色持续行走

时间:2016-11-02 00:49:53      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:scn   qbc   min   wxs   ppm   lsh   update   hwnd   vga   

使用NGUI提供的API,想使用按压按钮来控制角色持续行走:

技术分享

却发现当点击前进按钮后,角色只是向控制方向移动了一小步,并且长时间按前进按钮,角色则会忽略该Click事件:

技术分享

由此感到蹊跷,角色移动是在短暂的按压按钮之后。那么必定有Button事件能够感应到按钮的Press事件。遂在NGUI/Interrection中找到了UI Button Message(Script),在里面找到了挂载Press函数的地方:

技术分享

成功挂载函数,然后走起,预料的结果并没有出现,实现效果与之前的OnClick一样,角色进向前移动一小步,只是实现的时序不同,OnPress是在点击按钮后释放按钮前触发,而OnClick实在点击按钮并松开后才出触发:

技术分享

而我想要的结果是:按住按钮,角色持续行走,松开按钮,角色停止移动。

经过一个晚饭后想了一个解决方案:既然OnPress和OnClick触发时机不同,那何不利用此间隙来达到目的?

实现方法如下:

1.在控制角色的脚本中设置一个标志变量,来标识行走按钮是否被按压,如bool isMove=false;2.在OnPress()函数中将isMove的值设为true,在OnClick()函数中将isMove的值设为false;3.在Update()函数中对isMove进行判断,如果isMove值为真,则执行相应的移动代码,否则不执行;

因为Update()函数每一帧都刷新,所以这样就可以利用按下与松开按钮的时间差来控制角色移动了。

由于长时间按压按钮将会导致OnClick()事件响应失败,所以将OnClick()事件更换为OnRelease事件:

技术分享

这样无论按压按钮多长时间,松开时都能响应OnRelease事件,这样就趋于完善了。

技术分享

 

不知还有啥简便方法,望园友一起分享:)

NGUI 通过按压Button控制角色持续行走

标签:scn   qbc   min   wxs   ppm   lsh   update   hwnd   vga   

原文地址:http://www.cnblogs.com/vmoor2016/p/6021275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!