1.什麼是渲染管道?

是指在顯示器上為了顯示出圖像而經過的一系列必要操作。

渲染管道中的很多步驟,都要將幾何物體從一個坐標系中變換到另一個坐標系中去。

主要步驟有:本地坐標->視圖坐標->背面裁剪->光照->裁剪->投影->視圖變換->光柵化。

2.如何進行內存優化?

1.壓縮自帶類庫;

2.將暫時不用的以後還需要使用的物體隱藏起來而不是直接Destroy掉;

3.釋放AssetBundle佔用的資源;

4.降低模型的片面數,降低模型的骨骼數量,降低貼圖的大小;

5.使用光照貼圖,使用多層次細節(LOD)[全稱 Levels of Detail ,進行物體不同細節層次之間的平滑過渡。 根據物體所在的環境和所處位置的重要度,決定渲染。降低不重要和遠的物體的面數和細節度。一般都是視距近的物體清楚,視距遠的物體模糊。

3.動態載入資源的方式?

1.Resources.Load();

2.AssetBundle

4.什麼是協同程序?

在主線程運行時同時開啟另一段邏輯處理,來協助當前程序的執行。換句話說,開啟協程就是開啟一個線程。可以用來控制運動、序列以及對象的行為。

5.碰撞器和觸發器的區別?

碰撞器有碰撞的效果,IsTrigger=false,可以調用OnCollisionEnter/Stay/Exit函數;

觸發器沒有碰撞效果,IsTrigger=true,可以調用OnTriggerEnter/Stay/Exit函數。

6.物體發生碰撞的必要條件?

兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。

7.在物體發生碰撞的整個過程中,有幾個階段,分別列出對應的函數?

三個階段

1.OnCollisionEnter

2.OnCollisionStay

3.OnCollisionExit

8.Unity3d提供了一個用於保存和讀取數據的類(PlayerPrefs),請列出保存和讀取整形數據的函數?

PlayerPrefs.SetInt() PlayerPrefs.GetInt()

9.解釋一些Unity3d中的燈光有哪些?

有4種,點光源,區域光源,聚光燈,平行光。

10.Unity3d腳本從喚醒到銷毀有著一套比較完善的生命週期,請舉幾個例子?

Awake——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>Reset——>OnDisable——>OnDestroy

11.物流更新一般放在那個系統函數裏?

FixedUpdate,每固定幀繪製時執行一次,和Update不同的是FixedUpdate是渲染幀執行,如果你的渲染效率低下的時候FixedUpdate調用次數就會跟著下降。FixedUpdate比較適用於物理引擎的計算,因為是跟每幀渲染有關。Update就比較適合做控制。

12.移動攝像機的動作放在那個系統函數中,為啥?

LateUpdate,在每幀執行完畢調用,它是在所有Update結束後才調,比較適合用於命令腳本的執行。官網上例子是攝像機的跟隨,都是在所有Update操作完纔跟進攝像機,不然就有可能出現攝像機已經推進了,但是視角里還未有角色的空幀出現。

13.當遊戲中需要頻繁創建一個物體時,我們需要怎麼做?

使用預製物體對象Prefab,然後複製創建。

14.請簡述Unity3d下如何安全的在不同工程間遷移asset數據,請列舉出三種方法?

1.可以把assets目錄和Library目錄一起遷移

2.導出包

3.用Unity帶的assets Server功能

15.請描述遊戲動畫有哪幾種,以及其原理?

主要有關節動畫、骨骼動畫、單一網格模型動畫(關鍵幀動畫)。

關節動畫:把角色分成若干獨立部分,一個部分對應一個網格模型,部分的動畫連接成一個整體的動畫,角色比較靈活,Quake2中使用這種動畫;

骨骼動畫,廣泛應用的動畫方式,集成了以上兩個方式的優點,骨骼按角色特點組成一定的層次結構,有關節相連,可做相對運動,皮膚作為單一網格蒙在骨骼之外,決定角色的外觀;

單一網格模型動畫由一個完整的網格模型構成,在動畫序列的關鍵幀裏記錄各個頂點的原位置及其改變數,然後插值運算實現動畫效果,角色動畫較真實。

16.MipMap是什麼,作用?

MipMapping:在三維計算機圖形的貼圖渲染中有常用的技術,為加快渲染進度和減少圖像鋸齒,貼圖被處理成由一系列被預先計算和優化過的圖片組成的文件,這樣的貼圖被稱為MipMap。

17.localPosition和Position的區別?

全局變數和局部變數

小編這還有更多的unity3d遊戲開發面試題等你來領取~私信找小編吧。


推薦閱讀:
相關文章