unity c#之回调函数
2017-09-13 本文已影响0人
楚天月
关于回调函数,在unity中应用的非常广泛,不过一开始不是很容易搞懂,这几天看了不少公司的项目代码,对于回调函数终于有了那么几分了解
回调函数的作用通俗点讲就是完成了某个动作之后可以立马进行另一个动作,但那个动作你不确定具体会干什么,你可以根据不同的需求来进行不同的改变,这就是回调函数的作用
现在以一个很简单的例子来说明
using UnityEngine;
using System.Collections;
public class huidiaohanshu : MonoBehaviour {
// Use this for initialization
public delegate void callback(int a);
public void add(int a, int b,callback call)
{
int count = a + b;
call(count);
}
void Start () {
}
// Update is called once per frame
void Update () {
}
}
定义了一个huidiaohanshu类
这个类里面有一个求和的方法,在求和结束后要进行另一个动作,但我现在不知道具体要做什么,所以用了一个委托
using UnityEngine;
using System.Collections;
public class xianshi : MonoBehaviour {
// Use this for initialization
public int x;
public int y;
huidiaohanshu hanshu = new huidiaohanshu();
void Start () {
}
// Update is called once per frame
void Update () {
}
public void onClick()
{
hanshu.add(x, y, call);
}
void call(int y)
{
Debug.LogError("add is "+y);
}
}
定义了一个xianshi类
这个类里我用到了上个类的求和方法,并且得到了一个要求,在求和之后需要把得数显示出来,那么我就可以直接在这个类里面写出打印的动作
这样基本实现了一个简单的回调函数应用
可以看出,回调函数的特点,在一个类里面定义,而在另一个类里面才有具体的实现方法,这样你想修改求和之后想做的动作时,直接修改call里面的东西即可,不用再到huidiaohanshu类里面修改