1.Destroy和Instantiate
銷毀和創(chuàng)建方法洲脂,繼承自O(shè)bject。銷毀可以設(shè)置一個(gè)時(shí)間,延遲幾秒進(jìn)行銷毀在刺。
2.CompareTag物體標(biāo)簽比較
對(duì)GameObject的tag標(biāo)簽進(jìn)行比較,判斷是否和指定標(biāo)簽一致头镊,一般來說蚣驼,使用這種比較方式比使用==tag方式要好,速度快相艇。主要原因應(yīng)該是使用==方式的時(shí)候颖杏,tag有一步賦值操作,會(huì)影響速度坛芽,當(dāng)使用次數(shù)足夠多時(shí)留储,會(huì)影響到速度。
3.SendMessage方法
使用反射機(jī)制咙轩,調(diào)用其它物體上的方法获讳。
SendMessage直接發(fā)送給物體信息,調(diào)用物體上的方法活喊。
SendMessageUpWards:向物體的父級(jí)發(fā)送消息丐膝,調(diào)用物體父級(jí)物體上的方法。
BroadcastMessage:向物體的子類物體發(fā)送消息钾菊,調(diào)用物體子類物體上的方法帅矗。
第一個(gè)參數(shù)為調(diào)用的方法名稱,第二個(gè)參數(shù)則是傳遞的參數(shù)煞烫,第三個(gè)可以選擇的參數(shù)則是SendMessageOptions.RequireReceiver當(dāng)在對(duì)應(yīng)的物體上找不到相應(yīng)的方法時(shí)浑此,是否返回錯(cuò)誤,默認(rèn)找不到會(huì)返回錯(cuò)誤的滞详。
4.Invoke延遲執(zhí)行程序
public voidInvoke(stringmethodName, floattime);延遲幾秒執(zhí)行方法
public voidInvokeRepeating(stringmethodName, floattime, floatrepeatRate);延遲多長時(shí)間之后凛俱,每隔多少時(shí)間執(zhí)行一次方法喘落,相當(dāng)于定時(shí)器功能。
public voidCancelInvoke();取消延遲執(zhí)行方法最冰,相當(dāng)于停止定時(shí)器瘦棋。
public boolIsInvoking(stringmethodName);方法是否延遲執(zhí)行。
5.Coroutine協(xié)同執(zhí)行程序
public?Coroutine?StartCoroutine(IEnumerator routine);開始執(zhí)行協(xié)同程序方法routine方法暖哨。協(xié)同程序方法返回值必須是IEnumerator赌朋,不能傳遞參數(shù)。執(zhí)行協(xié)同程序篇裁,必須使用StartCoroutine方法調(diào)用沛慢。
協(xié)同程序類似開啟一個(gè)新的線程執(zhí)行一些操作,但是實(shí)質(zhì)上并不是真的開啟了一個(gè)線程达布,它還是在主線程中团甲,只不過這樣做能夠有效的改善由于大量運(yùn)算、加載資源等系統(tǒng)卡頓現(xiàn)象黍聂。
public void StopCoroutine(string methodName);
public void StopCoroutine(IEnumerator routine);
第一個(gè)是通過反射的方式停止協(xié)同程序躺苦,第二個(gè)則是直接傳遞方法,停止該協(xié)同程序产还。
public void StopAllCoroutines();
停止所有的協(xié)同程序匹厘。
可以理解協(xié)同程序是并發(fā)執(zhí)行的,搶占CPU資源進(jìn)行執(zhí)行脐区。那么在其中愈诚,就可以通過yield將CPU資源讓給其他人。
比如:yield return null牛隅;這句話就是暫停執(zhí)行炕柔,等到下一幀的時(shí)候繼續(xù)執(zhí)行。
yield return WaitForSeconds(2):暫停執(zhí)行媒佣,幾秒鐘后繼續(xù)執(zhí)行匕累。
waitforEndOfFrame:等待上一幀結(jié)束再執(zhí)行。
WaitForFixedUpdate:等待幀與幀間隔時(shí)間執(zhí)行丈攒。
Another coroutine:等待其他協(xié)同程序執(zhí)行后再執(zhí)行哩罪。
WWW:等待網(wǎng)絡(luò)資源加載完畢后再執(zhí)行。