首页 > 代码库 > 【Unity3D】【NGUI】如何动态给EventDelegate添加参数

【Unity3D】【NGUI】如何动态给EventDelegate添加参数

NGUI讨论群:333417608

NGUI版本:3.6.8


注意:参数必须是公共成员变量,不能是栈上的、或者私有的(就是临时在函数里面定义的或者是函数的参数都不行)

using UnityEngine;
using System.Collections;

public class SZEventDelegateParams : MonoBehaviour {
	
	public int param = 2;

	void Start()
	{
		// 创建新的delegate,最后调用此(this)脚本的Finished函数。当然this可以换成别的脚本,这里为了方便
		EventDelegate eventDelegate = new EventDelegate(this, "Finished");
		// 把第一个参数设置为此(this)脚本的param变量。<span style="font-family: Arial; ">当然this可以换成别的脚本,这里为了方便</span>
		eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");

		UIPlayTween uipt = this.GetComponent<UIPlayTween>();
		uipt.onFinished.Add(eventDelegate);
		uipt.Play(true);
	}

	// PlayTween 结束后,会调用到这里,打印相应的值
	void Finished(int p)
	{
		Debug.Log(p.ToString());
	}
}