程序 進(jìn)程:
主線程 操作Unity相關(guān)的對(duì)象、組件鳍侣。丁稀。。線程
協(xié)程:
概念:伴隨著主線程一起運(yùn)行的一段程序倚聚。
注意:協(xié)程與協(xié)程之間是并行執(zhí)行线衫,與主線程也是并行執(zhí)行。
創(chuàng)建協(xié)程方法:關(guān)鍵字IEnumerator惑折,返回 Yield Return:1授账、返回對(duì)象(有構(gòu)造的執(zhí)行構(gòu)造)2、等待下一幀繼續(xù)執(zhí)行
開(kāi)啟協(xié)程:StartCoroutine(執(zhí)行方法)惨驶、StartCoroutine(方法名稱(chēng))白热、StartCoroutine(方法名稱(chēng),參數(shù))粗卜;
停止協(xié)程 StopCoroutine(方法名稱(chēng))屋确、只能停止用傳參字符串串開(kāi)啟的協(xié)程、StartCoroutine(方法名稱(chēng))
WWW
創(chuàng)建下載對(duì)象 WWW data = new WWW(下載地址);
等待下載(①Yield return data)续扔、(②While(!data.isDone){yield return 0;})
獲取下載資源
文本data.text攻臀、圖片data.texture、視頻data.movie ogg纱昧、字節(jié)流data.bytes刨啸、聲音data.audioClip
注意:下載方法必須是協(xié)程方法
拓拓展:本地加載資源方式資源必須要放置到Assets/Resources文件夾中加載方法 Resource.Load();
using System.Threading;? ? ? //線程命名空間
進(jìn)程擁有自己獨(dú)立的堆和棧,既不共享堆识脆,亦不共享?xiàng)I枇M(jìn)程由操作系統(tǒng)調(diào)度。
線程擁有自己獨(dú)立的棧和共享的堆灼捂,共享堆离例,不共享?xiàng)#€程亦由操作系統(tǒng)調(diào)度(標(biāo)準(zhǔn)線程是的)纵东。
協(xié)程和線程一樣共享堆粘招,不共享?xiàng)I犊埽瑓f(xié)程由程序員在協(xié)程的代碼里顯示調(diào)度偎球。
進(jìn)程和其他兩個(gè)的區(qū)別還是很明顯的洒扎。
協(xié)程和線程的區(qū)別是:協(xié)程避免了無(wú)意義的調(diào)度,由此可以提高性能衰絮,但也因此袍冷,程序員必須自己承擔(dān)調(diào)度的責(zé)任,同時(shí)猫牡,協(xié)程也失去了標(biāo)準(zhǔn)線程使用多CPU的能力胡诗。
線程:
Thread:創(chuàng)建并控制線程
ThreadStart:創(chuàng)建子線程
Thread thread = new Thread(new ThreadStart(threadTest));
thread.Start();開(kāi)始
協(xié)程:
IEnumerator :所有協(xié)程方法必須用這個(gè)返回值類(lèi)型
yield return要返回的值 ?;
yield return new WaitForSeconds(3);
協(xié)同程序的返回值延遲等待時(shí)間3秒
StartCoroutine(corTest());開(kāi)始協(xié)程程序
StartCoroutine ("corTest");同上
StopCoroutine ();停止協(xié)程程序
StopAllCoroutines ();停止全部協(xié)程程序
WWW:
www.text獲取數(shù)據(jù)
texture:貼圖
SetActive:
END