NGUI-EventDelegate使用

我此时使用的NGUI版本是3.8.2


1、使用EventDelegate需要注意的一个地方

public TweenPosition m_tweenPosition = null;

EventDelegate.Add(m_tweenPosition.onFinished,OnTweenPositionFinished);

private void OnTweenPositionFinished()
{
EventDelegate.Remove(m_tweenPosition.onFinished, OnTweenPositionFinished);

Debug.Log("Test Finished." );
}

m_tweenPosition.PlayForward();

m_tweenPosition.PlayReverse();


经测试,发现当TweenPosition播放完移除回调后,再次执行播放TweenPosition还会执行OnTweenPositionFinished函数,根本就没移除掉。



上图为TweenPosition基类Update函数中执行onFinished,触发播放完成的地方。

由此图就可以知道,当使EventDelegate添加和移除事件或委托的时候注意一下。


可以使用此函来代替

EventDelegate Add (List<EventDelegate> list, Callback callback, bool oneShot)

这个函数的第三个参数就是只执行一次,当执行完成后会自动移除事件委托。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值