Unity編輯器操作面試題集錦(上)

1.請(qǐng)描述游戲動(dòng)畫有幾種,以及其原理。

答案:主要有關(guān)節(jié)動(dòng)畫、單一網(wǎng)格模型動(dòng)畫(關(guān)鍵幀動(dòng)畫)、骨骼動(dòng)畫。

關(guān)節(jié)動(dòng)畫把角色分成若干獨(dú)立部分,一個(gè)部分對(duì)應(yīng)一個(gè)網(wǎng)格模型,部分的動(dòng)畫連接成一個(gè)整

體的動(dòng)畫,角色比較靈活 Quake2 中使用了這種動(dòng)畫。

單一網(wǎng)絡(luò)模型動(dòng)畫由一個(gè)完整的網(wǎng)格模型構(gòu)成, 在動(dòng)畫序列的關(guān)鍵幀里記錄各個(gè)頂點(diǎn)的原位

置及其改變量,然后插值運(yùn)算實(shí)現(xiàn)動(dòng)畫效果,角色動(dòng)畫較真實(shí)。

骨骼動(dòng)畫,廣泛應(yīng)用的動(dòng)畫方式,集成了以上兩個(gè)方式的優(yōu)點(diǎn),骨骼按角色特點(diǎn)組成一定的

層次結(jié)構(gòu),由關(guān)節(jié)相連,可做相對(duì)運(yùn)動(dòng),皮膚作為單一網(wǎng)格蒙在骨骼之外,決定角色的外觀。

皮膚網(wǎng)格每一個(gè)頂點(diǎn)都會(huì)受到骨骼的影響,從而實(shí)現(xiàn)完美的動(dòng)畫。(骨骼動(dòng)畫是由關(guān)節(jié)動(dòng)畫

發(fā)展而來(lái)的,如今基本都使用骨骼動(dòng)畫來(lái)實(shí)現(xiàn)角色動(dòng)畫)

2.物體發(fā)生碰撞的必要條件

答案:物體 A 必須帶有(collider+rigidbody)或者 CharacterController,另一個(gè)物體也必須至少帶有 collider。

3.GUI與UGUI的優(yōu)點(diǎn)和缺點(diǎn)

答案:GUI不方便控制,UGUI所見(jiàn)即所得,方便控制。GUI使用在生命周期函數(shù)OnGUI中使用,腳本來(lái)書寫控制。UGUI使用Canvas畫布和事件系統(tǒng)。UGUI適應(yīng)屏幕上比GUI簡(jiǎn)單。

4.一個(gè)場(chǎng)景放置多個(gè)carmera并同時(shí)處于活動(dòng)狀態(tài),會(huì)發(fā)生什么

答案:實(shí)際看到的畫面由多個(gè) camera 的畫面組成,由 depth、Clear Flag、Culling Mask 都會(huì)影響最終合成效果。

5.U3D 中用于記錄節(jié)點(diǎn)空間幾何信息的組件名稱,及其父類名稱

答案:Transform 父類是 Component。

6.請(qǐng)簡(jiǎn)述如何在不同分辨率下保持 UI 的一致性

答案:NGUI 很好的解決了這一點(diǎn),屏幕分辨率的自適應(yīng)性,原理就是計(jì)算出屏幕的寬高比跟原來(lái)的預(yù)設(shè)的屏幕分辨率求出一個(gè)對(duì)比值,然后修改攝像機(jī)的 size。

7.為什么 dynamic font 在 unicode 環(huán)境下優(yōu)于 static font

答案:Unicode 是國(guó)際組織制定的可以容納世界上所有文字和符號(hào)的字符編碼方案。

使用動(dòng)態(tài)字體時(shí),Unity 將不會(huì)預(yù)先生成一個(gè)與所有字體的字符紋理。當(dāng)需要支持亞洲語(yǔ)言

或者較大的字體的時(shí)候,若使用正常紋理,則字體的紋理將非常大。

8.Render 的作用?描述 MeshRender 和 SkinnedMeshRender 的關(guān)系與不同

答案:Mesh 就是指模型的網(wǎng)格(同名組件是用于調(diào)整網(wǎng)格屬性的),MeshFilter 一般是用于獲得模型網(wǎng)格的組件,而 MeshRender 是用于把網(wǎng)格渲染出來(lái)的組件

9.簡(jiǎn)述 SkinnedMesh 的實(shí)現(xiàn)原理

答案:Skinned Mesh 中文一般稱作骨骼蒙皮動(dòng)畫.這種動(dòng)畫中包含骨骼( Bone )和蒙皮 (Skinned Mesh) 兩個(gè)部分, Bone 的層次結(jié)構(gòu)和關(guān)節(jié)動(dòng)畫類似, Mesh 則和關(guān)節(jié)動(dòng)畫不同:關(guān)節(jié)動(dòng)畫中是使用多個(gè)分散的 Mesh, 而 Skinned Mesh 中 Mesh 是一個(gè)整體,也就是說(shuō)只有一個(gè) Mesh, 實(shí)際上如果沒(méi)有骨骼讓 Mesh 運(yùn)動(dòng)變形, Mesh 就和靜態(tài)模型一樣了。Skinned Mesh 技術(shù)的精華在于蒙皮,所謂的皮并不是模型的貼圖。而是 Mesh 本身,蒙皮是指將 Mesh 中的頂點(diǎn)附著(綁定)在骨骼之上,而且每個(gè)頂點(diǎn)可以被多個(gè)骨骼所控制,這樣在關(guān)節(jié)處的頂點(diǎn)由于同時(shí)受到父子骨骼的拉扯而改變位置就消除了裂縫??梢岳斫鉃榫哂忻善ば畔⒌?Mesh 或可當(dāng)做皮膚用的 Mesh ,這個(gè)皮膚就是 Mesh 。而為了有皮膚功能, Mesh 還需要蒙皮信息,即 Skin 數(shù)據(jù),沒(méi)有 Skin 數(shù)據(jù)就是一個(gè)普通的靜態(tài) Mesh 了。 Skin 數(shù)據(jù)決定頂點(diǎn)如何綁定到骨骼上。頂點(diǎn)的 Skin 數(shù)據(jù)包括頂點(diǎn)受哪些骨骼影響以及這些骨骼影響該頂點(diǎn)時(shí)的權(quán)重 (weight) ,另外對(duì)于每塊骨骼還需要骨骼偏移矩陣 (BoneOffsetMatrix) 用來(lái)將頂點(diǎn)從 Mesh 空間變換到骨骼空間。

10.Prefab 的作用?如何在移動(dòng)環(huán)境的設(shè)備下恰當(dāng)?shù)厥褂盟?/h1>

答案:在游戲運(yùn)行時(shí)實(shí)例化,prefab 相當(dāng)于一個(gè)模版,對(duì)你已有的素材、腳本、參數(shù)做一個(gè)默認(rèn)配置,以便于以后修改,同時(shí) prefab 打包的內(nèi)容簡(jiǎn)化了導(dǎo)出的操作,便于團(tuán)隊(duì)的交流。

11.如何銷毀一個(gè) UnityEngine.Object 及其子類

答案:調(diào)用Destory()方法。

12.為什么 Unity3D 中會(huì)發(fā)生在組件上出現(xiàn)數(shù)據(jù)丟失的情況?

答案:組件上綁定的對(duì)象被刪除了。

13.如何安全的在不同工程間安全地遷移 asset 數(shù)據(jù)?三種方法

答案:1.將 Assets 目錄和 ProjectSetting 目錄一起遷移。

2.導(dǎo)出包。

3.使用版本控制器Git/SVN。

14.MeshCollider 和其他 Collider 的一個(gè)主要不同點(diǎn)?

答案:Meshcollider 是基于頂點(diǎn)的。建議還是用 boxcollider,boxcollider 本身

是基于算法,沒(méi)有面的概念。

15.當(dāng)一個(gè)細(xì)小的高速物體撞向另一個(gè)較大的物體時(shí),會(huì)出現(xiàn)什么情況?如何避免?

答案:穿透(碰撞檢測(cè)失?。?避免方法:碰撞體變大,F(xiàn)ixedUpdate, 代碼限制)

16.MeshRender 中 material 和 sharedmaterial 的區(qū)別?

答案:修改 sharedMaterial 將改變所有物體使用這個(gè)材質(zhì)的外觀,并且也改變儲(chǔ)存在工程里的材質(zhì)設(shè)置。

不推薦修改由 sharedMaterial 返回的材質(zhì)。如果你想修改渲染器的材質(zhì),使用 material替代。

17.用 u3d 實(shí)現(xiàn) 2d 游戲,有幾種方式?

答案:1.利用引擎自帶的 GUI和2D系統(tǒng)。

2.把攝像機(jī)設(shè)為 Orthographic,用面片作為 2d 元素。

3.利用第三方插件:NGUI、2dToolkit。

18.u3d 中碰撞器和觸發(fā)器的區(qū)別?

答案:1.collider 碰撞器會(huì)有碰撞的效果,IsTrigger = false,可以調(diào)用。

2.OnCollisionEnter/Stay/Exit 函數(shù)。

3.trigger 觸發(fā)器沒(méi)有碰撞效果,isTrigger = true,可以調(diào)用 OnTriggerEnter/stay/exit 函

數(shù)。

19.CharacterController 和 Rigidbody 的區(qū)別

答案:Rigidbody 具有完全真實(shí)物理的特性, 而 CharacterController 可以說(shuō)是受限的 Rigidbody,具有一定的物理效果但不是完全真實(shí)的。

20.什么叫做鏈條關(guān)節(jié)

答案:Hinge Joint ,他可以模擬兩個(gè)物體間用一根鏈條連接在一起的情況,能保持兩個(gè)物體在一個(gè)固定距離內(nèi)部相互移動(dòng)而不產(chǎn)生作用力,但是達(dá)到固定距離后就會(huì)產(chǎn)生拉力。 (簡(jiǎn)單說(shuō)就是彈簧).

21.unity3d 提供了幾種光源,分別是什么

答案:平行光:Directional Light

聚光燈:Spot Light

點(diǎn)光源:Point Light

區(qū)域光源:Area Light(只用于烘培)

22.u3d 下如何安全的在不同工程遷移 asset 數(shù)據(jù)

答案:方法 1,可以把 assets 目錄和 Library 目錄一起遷移,

方法 2,導(dǎo)出包

方法 3,用 unity 帶的 assets server 功能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Unity編輯器基礎(chǔ) 1.請(qǐng)描述游戲動(dòng)畫有幾種,以及其原理。 主要有關(guān)節(jié)動(dòng)畫、單一網(wǎng)格模型動(dòng)畫(關(guān)鍵幀動(dòng)畫)、骨骼...
    豆錚閱讀 4,949評(píng)論 0 6
  • 文章轉(zhuǎn)載自https://blog.csdn.net/n5/article/details/3105872 201...
    EternalSunLhx閱讀 7,777評(píng)論 0 2
  • 111. [動(dòng)畫系統(tǒng)]如何將其他類型的動(dòng)畫轉(zhuǎn)換成關(guān)鍵幀動(dòng)畫? 動(dòng)畫->點(diǎn)緩存->關(guān)鍵幀 112. [動(dòng)畫]Unit...
    胤醚貔貅閱讀 13,531評(píng)論 3 88
  • 一:什么是協(xié)同程序?答:在主線程運(yùn)行時(shí)同時(shí)開(kāi)啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行。換句話說(shuō),開(kāi)啟協(xié)程就是開(kāi)啟一個(gè)...
    CrixalisAs閱讀 2,234評(píng)論 1 7
  • 這個(gè)是我剛剛整理出的Unity面試題,為了幫助大家面試,同時(shí)幫助大家更好地復(fù)習(xí)Unity知識(shí)點(diǎn),如果大家發(fā)現(xiàn)有什么...
    編程小火雞閱讀 3,999評(píng)論 2 34

友情鏈接更多精彩內(nèi)容