永发信息网

怎么动态给EventDelegate添加参数

答案:4  悬赏:30  手机版
解决时间 2021-12-25 11:33
怎么动态给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());
}
}
全部回答
注意:参数必须是公共成员变量。不能是栈上的、或者私有的(就是暂时在函数里面定义的或者是函数的参数都不行) 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()); } }
动态给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()); } }
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()); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样注销长城宽带帐号
“一更天”是现在的几点?
读戴望舒的《赠内》一诗,选出分析不当的一项
已知tanA=-2,cosA<0,求sinA,sinA*cosA
眼睛有飞蚊症怎么办
你接受了一项写作任务,要为英语校报写一篇时
车标,竖着的长方形里面一个动物,好像是马头
给下列句子缩句:古诗词是我国民族文化的瑰宝
多项式-3x3y-1+2xy2-y3是________次________
梦幻西游 HS 技能 唧唧歪歪的伤害详情。
守望先锋一颗星是什么
完美的什么填空
神舟电脑里的图标设置怎么找不到?在哪可以找
2.5x=1的解是________.
我和我朋友有2000块钱,我们都是高中生,我们
推荐资讯
遇见三十年前读书时暗恋的对像后,得知她感情
如图,一种滑翔伞的形状是左右对称的四边形AB
荒阅读答案
鼻中隔偏曲和考民航飞行员
初中语文需要做什么
电子简历需要照片吗
咸阳市彬县交警大队地址有知道的么?有点事想
一张存期为2年的存单,本金为10000元,年利率
判断题两条直线相交成直角时,这两条直线就互
WINDOWS无法启动windowseventlog服务位于本地
单选题下列有关地方文化对旅游业的影响,不正
以下哪部武侠作家不是台湾作家?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?