怎么动态给EventDelegate添加参数
答案:4 悬赏:30 手机版
解决时间 2021-12-25 11:33
- 提问者网友:美人性情
- 2021-12-25 00:19
怎么动态给EventDelegate添加参数
最佳答案
- 五星知识达人网友:走死在岁月里
- 2022-01-10 01:09
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变量。当然this可以换成别的脚本,这里为了方便
eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");
UIPlayTween uipt = this.GetComponent();
uipt.onFinished.Add(eventDelegate);
uipt.Play(true);
}
// PlayTween 结束后,会调用到这里,打印相应的值
void Finished(int p)
{
Debug.Log(p.ToString());
}
}
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变量。当然this可以换成别的脚本,这里为了方便
eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");
UIPlayTween uipt = this.GetComponent
uipt.onFinished.Add(eventDelegate);
uipt.Play(true);
}
// PlayTween 结束后,会调用到这里,打印相应的值
void Finished(int p)
{
Debug.Log(p.ToString());
}
}
全部回答
- 1楼网友:忘川信使
- 2022-01-10 04:28
注意:参数必须是公共成员变量。不能是栈上的、或者私有的(就是暂时在函数里面定义的或者是函数的参数都不行)
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变量。当然this能够换成别的脚本,这里为了方便
eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");
UIPlayTween uipt = this.GetComponent();
uipt.onFinished.Add(eventDelegate);
uipt.Play(true);
}
// PlayTween 结束后。会调用到这里,打印对应的值
void Finished(int p)
{
Debug.Log(p.ToString());
}
}
- 2楼网友:零点过十分
- 2022-01-10 03:30
动态给EventDelegate添加参数对参数是有要求的。
参数必须是公共成员变量,不能是栈上的、或者私有的
举例如下:
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变量。当然this可以换成别的脚本,这里为了方便
eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");
UIPlayTween uipt = this.GetComponent();
uipt.onFinished.Add(eventDelegate);
uipt.Play(true);
}
// PlayTween 结束后,会调用到这里,打印相应的值
void Finished(int p)
{
Debug.Log(p.ToString());
}
}
- 3楼网友:几近狂妄
- 2022-01-10 02:27
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变量。当然this可以换成别的脚本,这里为了方便
eventDelegate.parameters[0] = new EventDelegate.Parameter(this, "param");
UIPlayTween uipt = this.GetComponent();
uipt.onFinished.Add(eventDelegate);
uipt.Play(true);
}
// PlayTween 结束后,会调用到这里,打印相应的值
void Finished(int p)
{
Debug.Log(p.ToString());
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯