六十:Unity3D的協(xié)程和C#線程之間的區(qū)別是什么?
多線程程序同時(shí)運(yùn)行多個(gè)線程 ,而在任一指定時(shí)刻只有一個(gè)協(xié)程在運(yùn)行,并且這個(gè)正在運(yùn)行的協(xié)同程序只在必要時(shí)才被掛起。除主線程之外的線程無法訪問Unity3D的對(duì)象、組件、方法。
Unity3d沒有多線程的概念,不過unity也給我們提供了StartCoroutine(協(xié)同程序)和LoadLevelAsync(異步加載關(guān)卡)后臺(tái)加載場景的方法。 StartCoroutine為什么叫協(xié)同程序呢,所謂協(xié)同,就是當(dāng)你在StartCoroutine的函數(shù)體里處理一段代碼時(shí),利用yield語句等待執(zhí)行結(jié)果,這期間不影響主程序的繼續(xù)執(zhí)行,可以協(xié)同工作。
六十一:矩陣相乘的意義及注意點(diǎn)
用于表示線性變換:旋轉(zhuǎn)、縮放、投影、平移、仿射
注意矩陣的蠕變:誤差的積累
六十二:為什么dynamic font在unicode環(huán)境下優(yōu)于static font
Unicode是國際組織制定的可以容納世界上所有文字和符號(hào)的字符編碼方案。
使用動(dòng)態(tài)字體時(shí),Unity將不會(huì)預(yù)先生成一個(gè)與所有字體的字符紋理。當(dāng)需要支持亞洲語言或者較大的字體的時(shí)候,若使用正常紋理,則字體的紋理將非常大。
六十三:當(dāng)一個(gè)細(xì)小的高速物體撞向另一個(gè)較大的物體時(shí),會(huì)出現(xiàn)什么情況?如何避免?
穿透(碰撞檢測失敗)
六十四:請(qǐng)簡述OnBecameVisible及OnBecameInvisible的發(fā)生時(shí)機(jī),以及這一對(duì)回調(diào)函數(shù)的意義?
當(dāng)物體是否可見切換之時(shí)??梢杂糜谥恍枰谖矬w可見時(shí)才進(jìn)行的計(jì)算。