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