Unity 回调函数(Callback)
回调函数(Callback)
将函数作为参数传到另一个函数里面,当哪个函数执行完之后,再执行传进去的这个参数。
这个过程就叫做回调:也就是主函数执行完,回头再调用传进来的那个函数。
回调函数的作用
回调函数的作用通常来说就是完成某个动作之后可以立马进行另一个动作,但你不确定那个动作具体会干什么,你可以根据不同的需求来进行不同的改变。
通俗的例子
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话。
过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。
在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,
店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。
例子来源(知乎回答):https://www.zhihu.com/question/19801131/answer/13005983
回调函数的定义
定义一个回调函数类:
1 using UnityEngine; 2 3 // 定义一个回调函数类 4 // 类里有一个求和方法,要求在求和结束后需要将结果显示出来 5 public class Callback : MonoBehaviour 6 { 7 public delegate void callback(int a); 8 9 public void AddNum(int a, int b, callback call) 10 { 11 int count = a + b; 12 call(count); 13 } 14 }
定义一个测试类,去调用回调函数:
1 using UnityEngine; 2 3 // 在这个类里面调用上个类的求和方法 4 // 根据要求,添加显示方法,将求和之后的数据显示出来 5 public class Test : MonoBehaviour 6 { 7 public int x; 8 public int y; 9 10 Callback cb = new Callback(); 11 12 public void Start() 13 { 14 cb.AddNum(x, y, Show); 15 } 16 17 void Show(int z) 18 { 19 print(z); 20 } 21 }
测试结果:
回调函数的特点
在一个类里面定义回调函数,而在另一个类里面才有具体的实现方法。
这样当你想修改求和之后的动作时,就可以直接在测试类中进行修改,而不用再到Callback类里面修改。
***| 以上内容仅为学习参考、学习笔记使用 |***