1. 程式人生 > >Unity百問百答(待補)

Unity百問百答(待補)

Unity 問題:

1.gameobject.CompareTag是不是比直接用gameObject.tag=="xxx"要好?
答:tag確實比CompareTag 更耗時間,因為tag是屬性,會在內部迴圈呼叫物件分配的標籤屬性並分配額外的記憶體!
測試結果:
在這裡插入圖片描述
2.Scene面板中提供了幾種繪製模式,都有什麼作用?
Shaded 開啟陰影和表明紋理顯示
Wireframe 開啟線框顯示
Shaded Wireframe 開啟陰影和表面紋理以及線框顯示
Shadow Cascades 開啟平行光陰影圖聯級(不知道做什麼的)
Render Paths 顯示渲染路徑,藍色表示延遲渲染,綠色表示延遲燈光,黃色表示向前渲染,紅色表示頂點渲染
Alpha Channel 用Alpha渲染顏色
Overdraw 將物件作為透明的“剪影渲染”。透明顏色累加,這樣就可以找出一個物件繪製在另一個物件的位置上
Mipmaps 使用顏色程式碼顯示理想的紋理尺寸,紅色表示紋理大於所需尺寸,藍色表示紋理可以更大。理想的紋理尺寸取決於遊戲執行時的解析度及相機可以離特定表明多近
3.相機中Clear Flags和CullingMask 的區別和作用?
答:Clear Flags :清楚標記,使用多個相機時,每個相機都會在快取區儲存各自的顏色和深度資訊,並在渲染是積累更多的資料,當場景中的任何相機渲染檢視時,可以設定清楚標記以清楚快取區資訊中不同的收集資料。CullingMask:剔除遮蔽圖,新增或刪除相機渲染的物件層

C#問答:

1.C#中 string和StringBuilder的區別?
答:string在宣告之後再記憶體中的大小是不可修改,每次對物件進行操作時,都會為該該物件分配新的空間。StringBuilder可以自由擴充套件物件大小,只要操作不會超過指定大小,是不會為自己從新分配空間,如果超過大小,系統會根據當前大小進行倍增
2.==和Equals以及Object.ReferenceEquals(obj1,obj2) 的作用是什麼?
答:==:值型別和string型別比較的是物件的值是否相等,除string型別意外得引用型別比較的是在棧中儲存的地址是否相等。Equals:值型別和string型別比較的是物件的值是否相等,除string型別外的引用型別比較的是是否同意引用物件,Object.ReferenceEquals(obj1,obj2) 比較的是記憶體地址是否相等
3.JIT和AOT都是什麼意思?
JIT,即just-in-time,動態(及時)編譯,邊執行邊編譯
AOT,Ahead Of Time,指執行前編譯。