天天看點

[unity3d]unity中C#委托的應用

C#中有一種還是挺實用的類型,就是委托類型,這也是初學者比較難了解的類型,我們常常将委托和事件合起來講,其實他們兩是有些差別的,委托(delegate)是一種類型,而事件(Event)是一種執行個體(委托中的一種)。下面我就從參考網上的一個例子,講解一下unity中C#委托的應用。

我們建立一個腳本,取名TestDelegate。這個主要的功能就是點選中文按鈕輸出中文名字,點選英文按鈕輸出英文名字。這裡有兩個函數分别實作了這兩個功能。如果不用委托,可以用if else,switch來實作,相比新手用的是比較多的,但大牛們的代碼一般比較少出現,是以這就告示我們要對我們的代碼進行仔細的研究,下面就看一下代碼:

這裡參考了一些網上的教程,@與現實沖突的教程寫的比較不錯,但我也加入一點自己的了解,我個人了解這個委托有點類似就是指針函數的意味,定義一個委托變量,也就類似C/C++中的函數指針,指向哪個函數就調用執行該函數的功能。

然後我們運作一下,看一下效果:

[unity3d]unity中C#委托的應用

了解過C/C++的同學一類比函數指針也就比較容易了解了,其實也就那麼回事,想要用哪個函數就指向這個函數,然後去調用這個函數的方法,其實委托還有+=和-=也就是多路廣播機制,下面舉例:

[unity3d]unity中C#委托的應用

<a target="_blank"></a>

<dl></dl>

<dt></dt>

<dd></dd>