關于回調函數,在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類里面修改