最近在处理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对原有的事件进行了一次更新,需要写成这样。
4
5
6
7
8
9
10
|
void
Start
(
)
{
TweenScale
scale
=
GetComponent
<
TweenScale
>
(
)
;
EventDelegate
.
Add
(
scale
.
onFinished
,
OnFinished
)
;
}
void
OnFinished
(
)
{
Debug
.
Log
(
TweenScale
.
current
.
name
)
;
}
|
值得注意的是,这次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!!