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