unity游戏中提示信息如何实现_Unity编辑器操作面试题集锦(上)
1.請描述游戲動畫有幾種,以及其原理。
答案:主要有關節動畫、單一網格模型動畫(關鍵幀動畫)、骨骼動畫。
關節動畫把角色分成若干獨立部分,一個部分對應一個網格模型,部分的動畫連接成一個整
體的動畫,角色比較靈活 Quake2 中使用了這種動畫。
單一網絡模型動畫由一個完整的網格模型構成, 在動畫序列的關鍵幀里記錄各個頂點的原位
置及其改變量,然后插值運算實現動畫效果,角色動畫較真實。
骨骼動畫,廣泛應用的動畫方式,集成了以上兩個方式的優點,骨骼按角色特點組成一定的
層次結構,由關節相連,可做相對運動,皮膚作為單一網格蒙在骨骼之外,決定角色的外觀。
皮膚網格每一個頂點都會受到骨骼的影響,從而實現完美的動畫。(骨骼動畫是由關節動畫
發展而來的,如今基本都使用骨骼動畫來實現角色動畫)
2.物體發生碰撞的必要條件
答案:物體 A 必須帶有(collider+rigidbody)或者 CharacterController,另一個物體也必須至少帶有 collider。
3.GUI與UGUI的優點和缺點
答案:GUI不方便控制,UGUI所見即所得,方便控制。GUI使用在生命周期函數OnGUI中使用,腳本來書寫控制。UGUI使用Canvas畫布和事件系統。UGUI適應屏幕上比GUI簡單。
4.一個場景放置多個carmera并同時處于活動狀態,會發生什么
答案:實際看到的畫面由多個 camera 的畫面組成,由 depth、Clear Flag、Culling Mask 都會影響最終合成效果。
5.U3D 中用于記錄節點空間幾何信息的組件名稱,及其父類名稱
答案:Transform 父類是 Component。
6.請簡述如何在不同分辨率下保持 UI 的一致性
答案:NGUI 很好的解決了這一點,屏幕分辨率的自適應性,原理就是計算出屏幕的寬高比跟原來的預設的屏幕分辨率求出一個對比值,然后修改攝像機的 size。
7.為什么 dynamic font 在 unicode 環境下優于 static font
答案:Unicode 是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。
使用動態字體時,Unity 將不會預先生成一個與所有字體的字符紋理。當需要支持亞洲語言
或者較大的字體的時候,若使用正常紋理,則字體的紋理將非常大。
8.Render 的作用?描述 MeshRender 和 SkinnedMeshRender 的關系與不同
答案:Mesh 就是指模型的網格(同名組件是用于調整網格屬性的),MeshFilter 一般是用于獲得模型網格的組件,而 MeshRender 是用于把網格渲染出來的組件
9.簡述 SkinnedMesh 的實現原理
答案:Skinned Mesh 中文一般稱作骨骼蒙皮動畫.這種動畫中包含骨骼( Bone )和蒙皮 (Skinned Mesh) 兩個部分, Bone 的層次結構和關節動畫類似, Mesh 則和關節動畫不同:關節動畫中是使用多個分散的 Mesh, 而 Skinned Mesh 中 Mesh 是一個整體,也就是說只有一個 Mesh, 實際上如果沒有骨骼讓 Mesh 運動變形, Mesh 就和靜態模型一樣了。Skinned Mesh 技術的精華在于蒙皮,所謂的皮并不是模型的貼圖。而是 Mesh 本身,蒙皮是指將 Mesh 中的頂點附著(綁定)在骨骼之上,而且每個頂點可以被多個骨骼所控制,這樣在關節處的頂點由于同時受到父子骨骼的拉扯而改變位置就消除了裂縫。可以理解為具有蒙皮信息的 Mesh 或可當做皮膚用的 Mesh ,這個皮膚就是 Mesh 。而為了有皮膚功能, Mesh 還需要蒙皮信息,即 Skin 數據,沒有 Skin 數據就是一個普通的靜態 Mesh 了。 Skin 數據決定頂點如何綁定到骨骼上。頂點的 Skin 數據包括頂點受哪些骨骼影響以及這些骨骼影響該頂點時的權重 (weight) ,另外對于每塊骨骼還需要骨骼偏移矩陣 (BoneOffsetMatrix) 用來將頂點從 Mesh 空間變換到骨骼空間。
10.Prefab 的作用?如何在移動環境的設備下恰當地使用它?
答案:在游戲運行時實例化,prefab 相當于一個模版,對你已有的素材、腳本、參數做一個默認配置,以便于以后修改,同時 prefab 打包的內容簡化了導出的操作,便于團隊的交流。
11.如何銷毀一個 UnityEngine.Object 及其子類
答案:調用Destory()方法。
12.為什么 Unity3D 中會發生在組件上出現數據丟失的情況?
答案:組件上綁定的對象被刪除了。
13.如何安全的在不同工程間安全地遷移 asset 數據?三種方法
答案:1.將 Assets 目錄和 ProjectSetting 目錄一起遷移。
2.導出包。
3.使用版本控制器Git/SVN。
14.MeshCollider 和其他 Collider 的一個主要不同點?
答案:Meshcollider 是基于頂點的。建議還是用 boxcollider,boxcollider 本身
是基于算法,沒有面的概念。
15.當一個細小的高速物體撞向另一個較大的物體時,會出現什么情況?如何避免?
答案:穿透(碰撞檢測失敗)(避免方法:碰撞體變大,FixedUpdate, 代碼限制)
16.MeshRender 中 material 和 sharedmaterial 的區別?
答案:修改 sharedMaterial 將改變所有物體使用這個材質的外觀,并且也改變儲存在工程里的材質設置。
不推薦修改由 sharedMaterial 返回的材質。如果你想修改渲染器的材質,使用 material替代。
17.用 u3d 實現 2d 游戲,有幾種方式?
答案:1.利用引擎自帶的 GUI和2D系統。
2.把攝像機設為 Orthographic,用面片作為 2d 元素。
3.利用第三方插件:NGUI、2dToolkit。
18.u3d 中碰撞器和觸發器的區別?
答案:1.collider 碰撞器會有碰撞的效果,IsTrigger = false,可以調用。
2.OnCollisionEnter/Stay/Exit 函數。
3.trigger 觸發器沒有碰撞效果,isTrigger = true,可以調用 OnTriggerEnter/stay/exit 函
數。
19.CharacterController 和 Rigidbody 的區別
答案:Rigidbody 具有完全真實物理的特性, 而 CharacterController 可以說是受限的 Rigidbody,具有一定的物理效果但不是完全真實的。
20.什么叫做鏈條關節
答案:Hinge Joint ,他可以模擬兩個物體間用一根鏈條連接在一起的情況,能保持兩個物體在一個固定距離內部相互移動而不產生作用力,但是達到固定距離后就會產生拉力。 (簡單說就是彈簧).
21.unity3d 提供了幾種光源,分別是什么
答案:平行光:Directional Light
聚光燈:Spot Light
點光源:Point Light
區域光源:Area Light(只用于烘培)
22.u3d 下如何安全的在不同工程遷移 asset 數據
答案:方法 1,可以把 assets 目錄和 Library 目錄一起遷移,
方法 2,導出包
方法 3,用 unity 帶的 assets server 功能
總結
以上是生活随笔為你收集整理的unity游戏中提示信息如何实现_Unity编辑器操作面试题集锦(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 189 元,OPPO Enco Air3
- 下一篇: 打包指令_将Vue项目打包为Window