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