亚洲v欧美v国产v在线成_制服丝袜中文字幕丝袜专区_一区二区三区韩国电影_激情欧美一区二区中文字幕

我要投稿 投訴建議

Unity面試題超全

時(shí)間:2022-10-26 16:46:01 面試試題 我要投稿
  • 相關(guān)推薦

Unity面試題(超全)

  這個(gè)是我們Unity技術(shù)經(jīng)理總結(jié)出來(lái)的面試題,也是企業(yè)面試Unity開(kāi)發(fā)技術(shù)人員經(jīng)常用到的。希望能夠幫助正在找工作的你們。

Unity面試題(超全)

  這個(gè)是我剛剛整理出的Unity面試題,為了幫助大家面試,同時(shí)幫助大家更好地復(fù)習(xí)Unity知識(shí)點(diǎn),如果大家發(fā)現(xiàn)有什么錯(cuò)誤,(包括錯(cuò)別字和知識(shí)點(diǎn)),或者發(fā)現(xiàn)哪里描述的不清晰,請(qǐng)?jiān)谙旅媪粞裕視?huì)重新更新,希望大家共同來(lái)幫助開(kāi)發(fā)者

  一:什么是協(xié)同程序?

  在主線程運(yùn)行的同時(shí)開(kāi)啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行,協(xié)程很像多線程,但是不是多線程,Unity的協(xié)程實(shí)在每幀結(jié)束之后去檢測(cè)yield的條件是否滿足。

  二:Unity3d中的碰撞器和觸發(fā)器的區(qū)別?

  碰撞器是觸發(fā)器的載體,而觸發(fā)器只是碰撞器身上的一個(gè)屬性。當(dāng)Is Trigger=false時(shí),碰撞器根據(jù)物理引擎引發(fā)碰撞,產(chǎn)生碰撞的效果,可以調(diào)用OnCollisionEnter/Stay/Exit函數(shù);

  當(dāng)Is Trigger=true時(shí),碰撞器被物理引擎所忽略,沒(méi)有碰撞效果,可以調(diào)用OnTriggerEnter/Stay/Exit函數(shù)。

  如果既要檢測(cè)到物體的接觸又不想讓碰撞檢測(cè)影響物體移動(dòng)或要檢測(cè)一個(gè)物件是否經(jīng)過(guò)空間中的某個(gè)區(qū)域這時(shí)就可以用到觸發(fā)器

  三:物體發(fā)生碰撞的必要條件?

  兩個(gè)物體都必須帶有碰撞器(Collider),其中一個(gè)物體還必須帶有Rigidbody剛體,而且必須是運(yùn)動(dòng)的物體帶有Rigidbody腳本才能檢測(cè)到碰撞。

  四:請(qǐng)簡(jiǎn)述ArrayList和List的主要區(qū)別?

  ####ArrayList存在不安全類型(ArrayList會(huì)把所有插入其中的數(shù)據(jù)都當(dāng)做Object來(lái)處理)裝箱拆箱的操作(費(fèi)時(shí))List是接口,ArrayList是一個(gè)實(shí)現(xiàn)了該接口的類,可以被實(shí)例化

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

  1.將Assets目錄和Library目錄一起遷移

  2.導(dǎo)出包,export Package

  3.用unity自帶的assets Server功能

  六:OnEnable、Awake、Start運(yùn)行時(shí)的發(fā)生順序?哪些可能在同一個(gè)對(duì)象周期中反復(fù)的發(fā)生

  Awake –>OnEnable->Start,OnEnable在同一周期中可以反復(fù)地發(fā)生。

  七:MeshRender中material和sharedmaterial的區(qū)別?

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

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

  八:Unity提供了幾種光源,分別是什么

  四種。

  平行光:Directional Light

  點(diǎn)光源:Point Light

  聚光燈:Spot Light

  區(qū)域光源:Area Light

  九:簡(jiǎn)述一下對(duì)象池,你覺(jué)得在FPS里哪些東西適合使用對(duì)象池

  對(duì)象池就存放需要被反復(fù)調(diào)用資源的一個(gè)空間,當(dāng)一個(gè)對(duì)象回大量生成的時(shí)候如果每次都銷毀創(chuàng)建會(huì)很費(fèi)時(shí)間,通過(guò)對(duì)象池把暫時(shí)不用的對(duì)象放到一個(gè)池中(也就是一個(gè)集合)。

  當(dāng)下次要重新生成這個(gè)對(duì)象的時(shí)候先去池中查找一下是否有可用的對(duì)象,如果有的話就直接拿出來(lái)使用,不需要再創(chuàng)建。

  如果池中沒(méi)有可用的對(duì)象,才需要重新創(chuàng)建,利用空間換時(shí)間來(lái)達(dá)到游戲的高速運(yùn)行效果,在FPS游戲中要常被大量復(fù)制的對(duì)象包括子彈,敵人,粒子等

  十:CharacterController和Rigidbody的區(qū)別

  Rigidbody具有完全真實(shí)物理的特性,Unity中物理系統(tǒng)最基本的一個(gè)組件,包含了常用的物理特性。

  而CharacterController可以說(shuō)是受限的的Rigidbody,具有一定的物理效果但不是完全真實(shí)的,是Unity為了使開(kāi)發(fā)者能方便的開(kāi)發(fā)第一人稱視角的游戲而封裝的一個(gè)組件

  十一:簡(jiǎn)述prefab的用處

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

  十二:請(qǐng)簡(jiǎn)述sealed關(guān)鍵字用在類聲明時(shí)與函數(shù)聲明時(shí)的作用

  sealed修飾的類為密封類,類聲明時(shí)可防止其他類繼承此類,在方法中聲明則可防止派生類重寫此方法。

  十三:請(qǐng)簡(jiǎn)述private,public,protected,internal的區(qū)別

  public:對(duì)任何類和成員都公開(kāi),無(wú)限制訪問(wèn)

  private:僅對(duì)該類公開(kāi)

  protected:對(duì)該類和其派生類公開(kāi)

  internal:只能在包含該類的程序集中訪問(wèn)該類

  十四:使用Unity3d實(shí)現(xiàn)2d游戲,有幾種方式?

  1.使用本身的GUI,在Unity4.6以后出現(xiàn)的UGUI

  2.把攝像機(jī)的Projection(投影)值調(diào)為Orthographic(正交投影),不考慮z軸;

  3.使用2d插件,如:2DToolKit,和NGUI

  十五:在物體發(fā)生碰撞的整個(gè)過(guò)程中,有幾個(gè)階段,分別列出對(duì)應(yīng)的函數(shù)

  三個(gè)階段,1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit

  十六:Unity3d的物理引擎中,有幾種施加力的方式,分別描述出來(lái)

  rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函數(shù)中。大家可以自己去查看一下rigidbody的API

  十七:什么叫做鏈條關(guān)節(jié)?

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

  十八:物體自身旋轉(zhuǎn)使用的函數(shù)?

  Transform.Rotate()

  十九:Unity3d提供了一個(gè)用于保存和讀取數(shù)據(jù)的類(PlayerPrefs),請(qǐng)列出保存和讀取整形數(shù)據(jù)的函數(shù)

  PlayerPrefs.SetInt() PlayerPrefs.GetInt()

  二十:Unity3d腳本從喚醒到銷毀有著一套比較完整的生命周期,請(qǐng)列出系統(tǒng)自帶的幾個(gè)重要的方法。

  Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDestroy

  二十一:物理更新一般放在哪個(gè)系統(tǒng)函數(shù)里?

  FixedUpdate,每固定幀繪制時(shí)執(zhí)行一次,和Update不同的是FixedUpdate是渲染幀執(zhí)行,如果你的渲染效率低下的時(shí)候FixedUpdate調(diào)用次數(shù)就會(huì)跟著下降。FixedUpdate比較適用于物理引擎的計(jì)算,因?yàn)槭歉繋秩居嘘P(guān)。Update就比較適合做控制。

  二十二:在場(chǎng)景中放置多個(gè)Camera并同時(shí)處于活動(dòng)狀態(tài)會(huì)發(fā)生什么?

  游戲界面可以看到很多攝像機(jī)的混合。

  二十三:如何銷毀一個(gè)UnityEngine.Object及其子類?

  使用Destroy()方法;

  二十四:請(qǐng)描述為什么Unity3d中會(huì)發(fā)生在組件上出現(xiàn)數(shù)據(jù)丟失的情況

  一般是組件上綁定的物體對(duì)象被刪除了

  二十五:LOD是什么,優(yōu)缺點(diǎn)是什么?

  LOD(Level of detail)多層次細(xì)節(jié),是最常用的游戲優(yōu)化技術(shù)。它按照模型的位置和重要程度決定物體渲染的資源分配,降低非重要物體的面數(shù)和細(xì)節(jié)度,從而獲得高效率的渲染運(yùn)算。缺點(diǎn)是增加了內(nèi)存。

  二十六:MipMap是什么,作用?

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

  二十七:請(qǐng)描述Interface與抽象類之間的不同

  抽象類表示該類中可能已經(jīng)有一些方法的具體定義,但接口就是公公只能定義各個(gè)方法的界面 ,不能具體的實(shí)現(xiàn)代碼在成員方法中。

  類是子類用來(lái)繼承的,當(dāng)父類已經(jīng)有實(shí)際功能的方法時(shí)該方法在子類中可以不必實(shí)現(xiàn),直接引用父類的方法,子類也可以重寫該父類的方法。實(shí)現(xiàn)接口的時(shí)候必須要實(shí)現(xiàn)接口中所有的方法,不能遺漏任何一個(gè)。

  二十八:.Net與Mono的關(guān)系?

  mono是.net的一個(gè)開(kāi)源跨平臺(tái)工具,就類似java虛擬機(jī),java本身不是跨平臺(tái)語(yǔ)言,但運(yùn)行在虛擬機(jī)上就能夠?qū)崿F(xiàn)了跨平臺(tái)。

  .net只能在windows下運(yùn)行,mono可以實(shí)現(xiàn)跨平臺(tái)跑,可以運(yùn)行于linux,Unix,Mac OS等。

  二十九:簡(jiǎn)述Unity3D支持的作為腳本的語(yǔ)言的名稱

  Unity的腳本語(yǔ)言基于Mono的.Net平臺(tái)上運(yùn)行,可以使用.NET庫(kù),這也為XML、數(shù)據(jù)庫(kù)、正則表達(dá)式等問(wèn)題提供了很好的解決方案。

  Unity里的腳本都會(huì)經(jīng)過(guò)編譯,他們的運(yùn)行速度也很快。這三種語(yǔ)言實(shí)際上的功能和運(yùn)行速度是一樣的,區(qū)別主要體現(xiàn)在語(yǔ)言特性上。JavaScript、 C#、Boo

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

  Transform 父類是 Component

【Unity面試題超全】相關(guān)文章:

求職面試常見(jiàn)問(wèn)題(超全版)02-11

Unity部分高頻面試試題02-19

硅谷面試題精選02-03

電信面試題07-20

Java經(jīng)典面試題12-29

Cisco的面試題09-25

IBM經(jīng)典面試題07-29

微軟面試題02-16

Java面試題01-22

面試題及答案02-06