2018版經典U3D面試題
一、什麼是渲染管道?
是指在顯示器上為了顯示出影象而經過的一系列必要操作。渲染管道中的很多步驟,都要將幾何物體從一個座標系中變換到另一個座標系中。主要步驟有: 本地座標->檢視座標->背面裁剪->光照->裁剪->投影->檢視變換->光柵化。
二、如何優化記憶體?
有很多種方式,例如:
1.壓縮自帶類庫;
2.將暫時不用的以後還需要使用的物體隱藏起來而不是直接Destroy掉;
3.釋放AssetBundle佔用的資源;
4.降低模型的片面數,降低模型的骨骼數量,降低貼圖的大小;
5.使用光照貼圖,使用多層次細節(LOD),使用著色器(Shader),使用預設(Prefab)。
三、動態載入資源的方式?
1.Resources.Load(); 2.AssetBundle
四、什麼是協同程式?
在主執行緒執行時同時開啟另一段邏輯處理,來協助當前程式的執行。換句話說,開啟協程就是開啟一個執行緒。可以用來控制運動、序列以及物件的行為。
五、你用過哪些外掛?
(多熟悉幾個外掛更好,問的時候好回答)
六、使用Unity3d實現2d遊戲,有幾種方式?
1.使用本身的GUI;
2.把攝像機Projection(投影)值調為Orthographic(正交投影),不考慮z軸;
3.使用2d外掛,如:2DToolKit.
七、Unity3d中的碰撞器和觸發器的區別?
碰撞器有碰撞的效果,IsTrigger=false,可以呼叫OnCollisionEnter/Stay/Exit函式; 觸發器沒有碰撞效果,IsTrigger=true,可以調OnTriggerEnter/Stay/Exit函式。
八、物體發生碰撞的必要條件
兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。
九、CharacterController和Rigidbody的區別?
CharacterController自帶膠囊碰撞器,裡面包含有剛體的屬性; Rigidbody就是剛體,使物體帶有剛體的特徵。