NGUI-EventDelegate使用

来源:互联网 发布:欧洲 旅馆 网络 编辑:程序博客网 时间:2024/05/16 00:40

我此时使用的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)

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






0 0