首页 > Unity3D频道 > 【NGUI研究院之Unity插件】 > NGUI研究院之NGUI3.0事件(九)
2013
11-12

NGUI研究院之NGUI3.0事件(九)

最近在处理NGUI升级3.0的事宜,发现NGUI这次升级变化挺大的。

之前在NGUI2.X中很多处理事件的代码是这样的

 很抱歉,如果你升级到了NGUI3.0,那么你会收到一个错误。

Cannot convert method group OnFinished' to non-delegate type System.Collections.Generic.List<EventDelegate>’. Consider using parentheses to invoke the method

于是去官网查了一下,发现NGUI对原有的事件进行了一次更新,需要写成这样。

 值得注意的是,这次NGUI把所有的事件都做成了List<EventDelegate>中,如果我们需要监听事件那么需要调用EventDelegate.Add()方法,原先OnFinished可以把UITweener传入,那么现在需要使用TweenScale.current ,就是表示得到当前触发该控件的这个事件。Subscribe to built-in event delegates (like input change, tweens finishing, slider change, button click, etc)  这些都可以这样用。

UIButton可以用这种方式来做。

 但是UIImageButton还不行,所以咱是还是用老的方式来处理。

 

OK,目前这样工程就不报错了,继续come on!!

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

NGUI研究院之NGUI3.0事件(九)》有 17 条评论

  1. letmegou 说:

    松哥,请问有没有ngui2.6升级到3.x的相关教程,网上看了一下有的还用到了ngui的升级工具,求正确升级教学

    • 雨松MOMO 说:

      麻烦点, 直接升级 然后在找错误吧。。我那时候也是这么升级的。。

      • letmegou 说:

        额,那工具我找到了,是ngui3.x自带的,= =,坑死我了。 那个我问详细点,松哥你是怎么升级的,我现在升级没有删掉原来的ngui,然后导入新的3.x ngui时,没有反应,Unity菜单栏上的ngui按钮显示的还是2.6的模式,以前升级2.x直接导入都没这个问题,

  2. 刘兆楠 说:

    雨松兄,最近在用NGUI3.0.7f1时遇到一个很诡异的问题。在做ScrollView控件时,动态添加子item。而只有最后一个item会响应自身的点击事件。其他的没反应,(只响应UIPanel的拖动,如果在调试前将其rigid组件删除,调试时UIPanel会自动添加,但此时所有item都不响应自身点击事件了)最后发现如果在控件的根节点下挂一个空物体,item居然响应正常了。哎~莫名其妙的。还不如2.3那会的Draggable Panel好用呢。

  3. 平安的爹 说:

    请教,如果TweenScale scale = GetComponent(); EventDelegate.Add (scale.onFinished, OnFinished);中的方法名OnFinished是在别的组件脚本上,那么该如何写呢?让你见笑了,小弟新手,请解答下,谢谢。

  4. 赵宗云 说:

    雨松momo您好,最近遇到一个问题,想向您请教一下:就是用Unity3d连接Oracle数据库。我看过您的篇文章,unity3d连接MySql数据库,也成功了。但最近有一个项目需要连接上Oracle数据库,一直没有试验成功。。。单纯的在C#环境下是能连接成功的(我请做C#的同事帮忙的),但是在unity3d环境下,总是提示:OracleException:ORA-12154:TNS:无法解析指定的连接标识符。试了很多办法,还是没有搞定,不知道您的邮箱,只能在这留言了,谢谢!

  5. 欧宇龙 说:

    遇到问题了momo,是这样滴。有A,B两个动画,A动画是攻击动画,B动画是待机动画。使用老动画系统。现在我控制执行完A动画之后,用CrossFade到待机动画。可是,一点效果都没有。还是生硬的回到B待机动画了。请问这是为毛啊!!!!!!!!!!!!

  6. 王而银 说:

    雨松兄,你好。实现一个需求遇到问题特来请教:改变贴图的颜色。因为要改变颜色, 而unity只提供了RGB值, 所以先从RGB值转到HSL,再把其中的H值更改后再转回RGB再赋给贴图,但获取贴图的像素GetPixels()规定贴图的格式必须是ARGB32等一些格式,但这些格式的贴图占用内存比较大,所以就想着载入的时候用的是压缩的贴图,等改变颜色的时候再改变贴图的格式,在网上找了一大圈,都没找到方法,特来请教下,希望能得到解答,谢谢。

  7. 多出点NGUI 3.x的教程吧!

  8. ABC 说:

    MOMO大老爷,在Unity3D频道和【NGUI研究院之Unity插件】的页面都看不到这文章,要在首页才能看到。

  9. MoMO粉 说:

    恩,已经在研究了!

  10. 常看 说:

    研究下4.3的2D吧。

  11. hjboo 说:

    哈哈,好久不更新文章了,忙什么了啊???

  12. 小徐 说:

    第一个,哈哈,一直都在看你的文章,还介绍给我公司同事看,Momo老师,有没有官方第三人称的注解文章,或者有没有看过这种帮助资料啊,看的我晕死了

留下一个回复

你的email不会被公开。