您的位置:首页 > 移动开发 > Unity3D

构建Unity3D信号槽机制 【ZObject.cs】

2015-12-18 13:32 387 查看
首先我们的模块A,管理类B都继承自ZObject...

1,在模块A中定义一个信号

复制代码
//定义信号
public SIGNAL mouseClickSignal;
//鼠标点击物体A时发出信号
Void OnMouseDown(){
EMIT(mouseClickSignal, null);
}

2,在管理类B中定义一个接收信号用的槽 

复制代码
void SLOT_MouseClicked(Hashtable args){
//do something
}

3,在管理类B连接信号与相应的槽 

复制代码
public ClassA classA; //模块A 
void Awake () {
CONNECT(ref classA.mouseClickSignal, SLOT_MouseClicked);
}

Ver2.0中CONNECT 第一个参数要用ref指向其指针

怎么样,通过信号槽机制,只要三个步骤我们就可以实现delegate的功能。
如果对信号槽机制还是无法理解的话,可以搜索一下Qt + 信号槽,有不少相关文章,比本文解释的更加详尽。
ZObject具体使用方法可以参考附件中的工程文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity