1.Unity3D的協(xié)程和C#線程之間的區(qū)別是什么?
協(xié)程:在主線程運(yùn)行的同時(shí)開(kāi)啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行。在每幀結(jié)束之后去檢測(cè)yield的條件是否滿足,任一指定時(shí)刻只有一個(gè)協(xié)程在運(yùn)行,并且這個(gè)正在運(yùn)行的協(xié)同程序只在必要時(shí)才被掛起。
多線程程序同時(shí)運(yùn)行多個(gè)線程 ,除主線程之外的線程無(wú)法訪問(wèn)Unity3D的對(duì)象、組件、方法,缺點(diǎn):協(xié)同程序并非真線程,協(xié)程也失去了標(biāo)準(zhǔn)線程使用多CPU的能力。可能會(huì)發(fā)生堵塞。
2.動(dòng)態(tài)加載資源的方式?
1.Resources.Load();
2.AssetBundle
通過(guò)Resources模塊,調(diào)用它的load函數(shù):可以直接load并返回某個(gè)類型的Object,前提是要把這個(gè)資源放在Resource命名的文件夾下,Unity不關(guān)有沒(méi)有場(chǎng)景引用,都會(huì)將其全部打入到安裝包中。
2.通過(guò)bundle的形式:即將資源打成 asset bundle 放在服務(wù)器或本地磁盤(pán),然后使用WWW模塊get 下來(lái),然后從這個(gè)bundle中l(wèi)oad某個(gè)object。
3.如何安全的在不同工程間地遷移asset數(shù)據(jù)?三種方法
1.將Assets目錄和Library目錄一起遷移
2.導(dǎo)出包,export Package
3.用unity自帶的assets Server功能
4.Unity提供了幾種光源,分別是什么
四種。
平行光:Directional Light
點(diǎn)光源:Point Light
聚光燈:Spot Light
區(qū)域光源:Area Light
5.Unity3d腳本從喚醒到銷(xiāo)毀有著一套比較完整的生命周期,請(qǐng)列出系統(tǒng)自帶的幾個(gè)重要的方法。
Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDestroy