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