四十四:請簡述GC(垃圾回收)產(chǎn)生的原因,并描述如何避免?
GC回收堆上的內存
避免:1.減少new產(chǎn)生對象的次數(shù)
2.使用公用的對象(靜態(tài)成員)
3.將String換為StringBuilder
四十五:反射的實現(xiàn)原理?
審查元數(shù)據(jù)并收集關于它的類型信息的能力。實現(xiàn)原理:在運行時根據(jù)程序集及其中的類型得到元數(shù)據(jù)。下面是實現(xiàn)步驟:
導入using System.Reflection;
Assembly.Load(“程序集”)加載程序集,返回類型是一個Assembly
得到程序集中所有類的名稱
foreach (Type type in assembly.GetTypes()) { string t = type.Name; }
4. Type type = assembly.GetType(“程序集.類名”);獲取當前類的類型
Activator.CreateInstance(type); 創(chuàng)建此類型實例
MethodInfo mInfo = type.GetMethod(“方法名”);獲取當前方法
m.Info.Invoke(null,方法參數(shù));
四十六:簡述四元數(shù)的作用,四元數(shù)對歐拉角的優(yōu)點?
四元數(shù)用于表示旋轉
相對歐拉角的優(yōu)點:
1.能進行增量旋轉
2.避免萬向鎖
3.給定方位的表達方式有兩種,互為負(歐拉角有無數(shù)種表達方式)
四十七:移動相機動作在哪個函數(shù)里,為什么在這個函數(shù)里?
LateUpdate,是在所有的update結束后才調用,比較適合用于命令腳本的執(zhí)行。官網(wǎng)上例子是攝像機的跟隨,都是所有的update操作完才進行攝像機的跟進,不然就有可能出現(xiàn)攝像機已經(jīng)推進了,但是視角里還未有角色的空幀出現(xiàn)。