最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

游戲開(kāi)發(fā)常見(jiàn)面試題與知識(shí)點(diǎn)整理總結(jié)

  發(fā)布時(shí)間:2020-01-13 14:13:07   作者:王子公園   我要評(píng)論
這篇文章主要介紹了游戲開(kāi)發(fā)常見(jiàn)面試題與知識(shí)點(diǎn),整理總結(jié)了游戲開(kāi)發(fā)中Unity、C#基本知識(shí)點(diǎn)、原理、以及面試常見(jiàn)考點(diǎn),需要的朋友可以參考下

面試第一次知識(shí)總結(jié):

一、Unity基本操作

1、unity提供哪幾種光源?

點(diǎn)光源、平行光、聚光燈、區(qū)域光。

2、物體發(fā)生碰撞的必要條件什么?

兩個(gè)物體必須有碰撞體Collider組件,一個(gè)物體上必須有剛體組件Rigidbody。

3、碰撞體和觸發(fā)器區(qū)別與聯(lián)系

觸發(fā)器是碰撞體上的一個(gè)屬性,如果不勾選觸發(fā)器,兩個(gè)物體是不可以別擊穿;有了觸發(fā)器后是可以被擊穿的。

檢測(cè)碰撞體方法:OnCollisionEnter/Stay/Exit()                檢測(cè)觸發(fā)器方法:OnTriggerEnter/Stay/Exit()

4、預(yù)設(shè)(prefab)的好處

預(yù)設(shè)更多的像一個(gè)模板,比如將一個(gè)人物模型設(shè)置成預(yù)設(shè),我們可以在不同的場(chǎng)景使用,方便使用。

5、如何利用unity開(kāi)發(fā)2D游戲

1)使用本身的GUI

2)攝像機(jī)的投影(projection)方式改為正交投影,不考慮一個(gè)坐標(biāo)軸

3)使用插件2DToolKit

6、事件函數(shù)的執(zhí)行順序

初始化:函數(shù)Awake(激活游戲?qū)ο?----OnEnable(實(shí)例化游戲?qū)ο?-----Start(初始化)

更新順序:FixedUpdate(物理計(jì)算,處理剛體)----Update()----LateUpdate(相機(jī)跟隨)

渲染部分:OnBecameVisible/Invisible(相機(jī)中可見(jiàn)或不可見(jiàn))----OnGUI(執(zhí)行鍵盤(pán)和鼠標(biāo)事件)

對(duì)象銷(xiāo)毀和退出場(chǎng)景:OnDisable(不激活對(duì)象)----OnDestroy(銷(xiāo)毀游戲?qū)ο?-----OnApplicationQuit(游戲場(chǎng)景退出)

7、協(xié)程

協(xié)程功能類(lèi)似與多線程,StartCoroutine()-----yield WaitForSecond/WWW-----StopCoroutine()

協(xié)程背后通過(guò)迭代器實(shí)現(xiàn),主要實(shí)現(xiàn)了兩個(gè)接口,IEnumerator和IEnumerable,接口的方法重要有三個(gè)方法,MoveNext()---Current--Dispose()

8、對(duì)象池

對(duì)象池用于存放反復(fù)被調(diào)用的資源,比如射擊類(lèi)游戲中的子彈。

9、物體旋轉(zhuǎn)和添加力

Transform.Rotate()、Rigidbody.AddForce()

10、Unity、Mono和.Net的關(guān)系

Unity是在.Net平臺(tái)上運(yùn)行,只能在window下運(yùn)行,而mono是實(shí)現(xiàn)跨平臺(tái)的工具。

11、uinty支持的腳本語(yǔ)言

c#、javascripts、Boo。

12、Mipmap

Mipmap是一種貼圖,目的是為加快渲染速度和減少圖形鋸齒。

13、鏈條關(guān)節(jié)

Hinge Joint用一個(gè)鏈條模擬連接兩個(gè)物體,在一定距離后會(huì)產(chǎn)生拉力。

14、射線檢測(cè)碰撞體

Ray類(lèi),從一個(gè)點(diǎn)發(fā)射一條無(wú)邊的線,遇到碰撞體后停止發(fā)射。

15、動(dòng)畫(huà)類(lèi)型

關(guān)節(jié)動(dòng)畫(huà):模型分成多個(gè)獨(dú)立的部分;骨骼動(dòng)畫(huà):各個(gè)部分用關(guān)節(jié)相連;單一網(wǎng)格模型動(dòng)畫(huà):插值運(yùn)算實(shí)現(xiàn)動(dòng)畫(huà)效果。

16、Unity資源處理種類(lèi)

Resources:只讀,不能動(dòng)態(tài)修改,不要放動(dòng)態(tài)更新的資源,資源讀取Resources.Load();

StreamingAssets:完全打包,主要存放二進(jìn)制文件,用WWW類(lèi)讀??;

AssetBundle:Prefab封裝成AssetBundle,加載資源的方式有Resources類(lèi)和WWW類(lèi)。

17、Unity Socket網(wǎng)絡(luò)編程

一般采用可靠傳輸協(xié)議TCP,服務(wù)器創(chuàng)建兩個(gè)Socket,一個(gè)用于監(jiān)聽(tīng),另一個(gè)用于接受和發(fā)送消息;客戶端連接,接受和發(fā)送消息。

18、著色器是什么,有哪幾種?

著色器模擬物體表面發(fā)生的事情,著色器包括頂點(diǎn)著色器、片元著色器、無(wú)光照著色器、表面著色器。

19、著色器和材質(zhì)的聯(lián)系

shader是材質(zhì)當(dāng)中的一個(gè)重要的屬性,可以通過(guò)自己定義的shader來(lái)更好的渲染物體表面。

20、渲染管線

數(shù)據(jù)收集(紋理,材質(zhì))----頂點(diǎn)著色器獲取圖形的2D坐標(biāo)---頂點(diǎn)后處理進(jìn)行坐標(biāo)變換,圖形基元裁剪---圖形基元收集

---柵格化接受三角形及其數(shù)據(jù),形成潛在的像素和片源----片源著色器----輸入數(shù)據(jù)。

21、無(wú)光照著色器結(jié)構(gòu)

頂點(diǎn)數(shù)據(jù)收集結(jié)構(gòu)體---頂點(diǎn)函數(shù)(著色器)---頂點(diǎn)數(shù)據(jù)通過(guò)柵格化處理后的數(shù)據(jù)---片源函數(shù)---最終的顏色

22、光照著色器中漫反射和鏡面反射的計(jì)算過(guò)程

漫反射計(jì)算過(guò)程:1)通過(guò)法線向量和光線入射方向求點(diǎn)積,得到光照強(qiáng)度;2)將光線顏色*光線強(qiáng)度*物體的表面顏色,就是我們最后看到的顏色;

鏡面反射計(jì)算過(guò)程:1)光線的入射方向和法線求出反射方向;2)將反射方向和眼睛的入射方向求點(diǎn)積;3)以點(diǎn)積為底,指數(shù)是光照強(qiáng)度求出看到的顏色。

23、后處理堆

Post-process volume游戲?qū)ο蠛蚿rofile屬性結(jié)合,對(duì)相機(jī)渲染進(jìn)行后處理,包括顆粒、暗角、景深

24、CPU優(yōu)化

1)DrawCalls,它是CUP調(diào)用底層圖形接口,每一次渲染都需要調(diào)用一次接口,可以將兩個(gè)紋理不同的材質(zhì)打包成圖集,進(jìn)行同時(shí)渲染實(shí)現(xiàn)批處理;

2)物理組件,選擇合適的Fixed Timestep,盡量不使用網(wǎng)格碰撞器(mesh collider);

3)盡量減少GC的觸發(fā),盡量不要使用foreach(),產(chǎn)生的垃圾多,最好不用LINQ命令和字符串連接,他們都是GC收集的目標(biāo);

4)代碼優(yōu)化,不頻繁使用GetComponent,善于使用OnBecameVisible和內(nèi)建數(shù)組,以及ref關(guān)鍵字。

25、GPU優(yōu)化

1)減少繪制(頂點(diǎn))的數(shù)目,使用較少的材質(zhì)數(shù)目和使用紋理圖集,使用共享材質(zhì)Renderer.sharedMaterial代替Renderer.material,

使用光照紋理(lightmap)而非實(shí)時(shí)燈光;

2)優(yōu)化顯存帶寬,OpenGL壓縮圖片,使用MipMap增加了等比例的小圖,即增加了內(nèi)存空間,但是渲染質(zhì)量比壓縮好很多。

26、四元組的作用

Quaternion對(duì)旋轉(zhuǎn)的角度進(jìn)行計(jì)算。

27、Unity制作動(dòng)畫(huà)效果

windows---Animation---錄制---AddKeys

28、Unity狀態(tài)機(jī)

Animator在動(dòng)畫(huà)制作完之后產(chǎn)生的文件,也就是生成的狀態(tài)機(jī),可以增加其狀態(tài)和變遷。

29、Unity導(dǎo)航尋路

windows--Navigation,選擇navigation static,進(jìn)行bake烘焙,為目標(biāo)選擇一個(gè)導(dǎo)航代理Nav Mesh Agent,對(duì)其進(jìn)行掛載腳本。

30、貼圖和精靈的區(qū)別

Sprite作為UI精靈使用,Texture作為模型貼圖使用。

二、C#面向?qū)ο笳Z(yǔ)言

1、多線程

一個(gè)進(jìn)程中經(jīng)常有多個(gè)線程,主線程和Thread構(gòu)造出線程為前臺(tái)線程,用IsBackgound()設(shè)置為后臺(tái)線程

通過(guò)委托構(gòu)造出的線程為后天線程,BeginInvoke(),前臺(tái)線程關(guān)閉后后臺(tái)線程隨著關(guān)閉,Lock用于解決線程之間的爭(zhēng)奪資源,Console.ReadLine()用于后臺(tái)線程讀取完畢。

2、值類(lèi)型和引用類(lèi)型

值類(lèi)型:結(jié)構(gòu)(Int、Float、Bool)和枚舉,一般存儲(chǔ)在線程棧上,棧的存取速度優(yōu)于堆,并且可以共享,隨著方法的結(jié)束,存儲(chǔ)就也被釋放了。

引用類(lèi)型: 類(lèi)、接口、委托、字符串,一般存儲(chǔ)在托管堆上,對(duì)象存儲(chǔ)棧上,只要某個(gè)對(duì)象被引用了,這個(gè)對(duì)象的內(nèi)存就不會(huì)被釋放。

3、裝箱和拆箱

裝箱:值類(lèi)型轉(zhuǎn)化為引用類(lèi)型

拆箱:引用類(lèi)型轉(zhuǎn)化為值類(lèi)型

4、unity中的值類(lèi)型和引用類(lèi)型

值類(lèi)型:Vector、Color、Ray、Touch

引用類(lèi)型:Object、Component、MonoBehaviour

5、ArrayList和List的區(qū)別

1、ArrayList不安全,將所有的類(lèi)型都當(dāng)做Object類(lèi)型處理,很有可能出現(xiàn)類(lèi)型不匹配的問(wèn)題;

2、ArrayList在數(shù)據(jù)插入和獲取的會(huì)有裝箱和拆箱操作,而導(dǎo)致額外的開(kāi)銷(xiāo)。

6、public、protected、private、internal區(qū)別

public:所有的類(lèi)都可以訪問(wèn);protected:該類(lèi)及其子類(lèi)可以訪問(wèn);private:僅僅該類(lèi)可以訪問(wèn);internal:該類(lèi)的程序集中訪問(wèn)。

7、接口和抽象類(lèi)的區(qū)別

1、一個(gè)類(lèi)可以繼承多個(gè)接口,但只能繼承一個(gè)抽象類(lèi);

2、接口中的方法都是抽象方法,而且必須全部實(shí)現(xiàn);抽象類(lèi)可以實(shí)現(xiàn)部分方法,不一定全部是抽象方法。

8、ref和out

ref和out都是傳遞參數(shù)的關(guān)鍵字,ref傳遞的參數(shù)必須初始化,out傳遞的參數(shù)必須在函數(shù)內(nèi)賦值;

ref傳遞的是引用,一個(gè)函數(shù)需要有多個(gè)返回值時(shí)用out比較方便。

9、委托

委托最主要的是傳遞的不是變量而是一個(gè)方法,和c++中的方法指針比較相似

自定義委托步驟:1)定義委托;2)委托實(shí)例化;3)注冊(cè)委托;4)委托調(diào)用

系統(tǒng)委托有Action(注冊(cè)的方法無(wú)返回值),F(xiàn)unc(注冊(cè)的方法有返回值),Predicate(返回值為bool類(lèi)型)

10、匿名和lamda表達(dá)式

匿名將委托的實(shí)例化和委托方法合并;lamda表達(dá)式是對(duì)委托方法的進(jìn)一步簡(jiǎn)化。

11、委托和事件

委托可以作為方法的參數(shù),事件不可以;委托可以聲明一個(gè)局部變量,事件不可以;事件其實(shí)是委托的一個(gè)特殊化的實(shí)例。

12、StringBuilder類(lèi)和String的區(qū)別

String類(lèi)字符串是不可變的,StringBuilder是拼接字符串。

13、反射原理

反射可以讀取程序集中代碼的內(nèi)容(dll和exe文件),反射中常用Type類(lèi)和Assembly類(lèi)獲取命名空間、類(lèi)名以及類(lèi)的方法、屬性、字段。

GetMethod(),GetProperties(),GetFiled(),據(jù)說(shuō)反射還可以得到private方法。

14、sealed關(guān)鍵字

如果是在類(lèi)前聲明,這個(gè)類(lèi)是不可以被繼承;如果是在方法前聲明,這個(gè)方法是不可以被重寫(xiě)的。

15、序列化和反序列化

序列化:對(duì)象轉(zhuǎn)化為字節(jié)流的過(guò)程,首先一個(gè)對(duì)象應(yīng)該被確定為可以被序列化(Serializable)---定義文件流(FileStream)--使用格式化器BinaryFormatter進(jìn)行序列化和反序列化;

反序列化:字節(jié)流轉(zhuǎn)化為對(duì)象的過(guò)程。

16、Unity3D中序列化注意事項(xiàng)

最好為public或者使用了[SerializeField]定制特性、自定義引用類(lèi)型和值類(lèi)型且必須使用[Serializable]定制特性、基元類(lèi)型。

17、特性

系統(tǒng)特性:Obsolete特性檢查方法是否過(guò)時(shí),Conditional特性實(shí)現(xiàn)條件編譯,比如測(cè)試方法但是需要宏定義;

Unity中的特性:DllImport特性應(yīng)用于方法,Serializable特性應(yīng)用于類(lèi)型,自定義特性和拓展編輯器。

18、拓展方法

對(duì)于定義好的類(lèi)進(jìn)行拓展,比如String和Int類(lèi),但是拓展類(lèi)和方法都應(yīng)該是靜態(tài)的。

19、正則表達(dá)式

正則表達(dá)式判斷字符串更加簡(jiǎn)潔,但是需要懂一些語(yǔ)法,最主要的類(lèi)是Regex

string strPattarn = @"^\d*KaTeX parse error: Expected 'EOF', got '\d' at position 15: ";可以理解為^最開(kāi)始為數(shù)字\̲d̲直到*最后仍然為數(shù)字。

string strPattern = @"^\w*$"; \w判斷用戶輸入有字母,數(shù)字,下劃線,漢字,其他都是非法的

20、構(gòu)造函數(shù)和析構(gòu)函數(shù)

構(gòu)造函數(shù):創(chuàng)建對(duì)象時(shí)初始化對(duì)象;

析構(gòu)函數(shù):用于釋放一個(gè)對(duì)象,有垃圾回收器控制,清理資源。

21、單例模式

單例模式要求某個(gè)類(lèi)只要一個(gè)實(shí)例,比如一臺(tái)打印機(jī)連接了多個(gè)計(jì)算機(jī),可以將其設(shè)計(jì)為單例模式,防止兩臺(tái)計(jì)算機(jī)同時(shí)打印;

構(gòu)造函數(shù)設(shè)置為private,實(shí)例化對(duì)象instance;通過(guò)public的getInstance方法為外部獲取實(shí)例提供接口。

22、觀察者模式

一個(gè)事件發(fā)生變化,其他相關(guān)是事件都發(fā)生變化,一般用委托進(jìn)行注冊(cè)方法。

當(dāng)然還有一些其他設(shè)計(jì)模式,包括簡(jiǎn)單工廠模式、代理模式、適配器模式、裝飾器模式、迭代器模式等。

23、Hashtable類(lèi)和HashMap

Hashtable和HashMap都是存儲(chǔ)鍵值對(duì),Hashtable多線程安全,HashMap多線程不安全;HashMap null可以作為鍵,而Hashtable不可以。

24、HashMap和TreeMap

HashMap和TreeMap同樣是存儲(chǔ)鍵值對(duì),HashMap是無(wú)序的,而TreeMap是有序的存儲(chǔ)。

相關(guān)文章

  • 網(wǎng)易游戲面試題與參考答案整理分析

    這篇文章主要介紹了網(wǎng)易游戲面試題與參考答案,整理分析了網(wǎng)易游戲招聘面試中遇到的專(zhuān)業(yè)題、邏輯題與游戲題,以及相應(yīng)的參考答案,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-10
  • 網(wǎng)易游戲面試經(jīng)歷總結(jié)

    這篇文章主要介紹了網(wǎng)易游戲面試經(jīng)歷,總結(jié)記錄了網(wǎng)易游戲招聘面試所經(jīng)歷的流程及各個(gè)面試環(huán)節(jié)所遇到的問(wèn)題,需要的朋友可以參考下
    2019-09-30
  • 騰訊游戲客戶端開(kāi)發(fā)面試經(jīng)歷記錄

    這篇文章主要介紹了騰訊游戲客戶端開(kāi)發(fā)面試經(jīng)歷,整理記錄了騰訊游戲開(kāi)發(fā)面試中遇到的各種問(wèn)題與心得體會(huì),需要的朋友可以參考下
    2019-09-24
  • 網(wǎng)易游戲的面試題與參考答案記錄

    這篇文章主要介紹了網(wǎng)易游戲的面試題與參考答案,總結(jié)了網(wǎng)易游戲入職面試中的常見(jiàn)問(wèn)題及對(duì)應(yīng)參考答案,涉及線程、數(shù)據(jù)庫(kù)、爬蟲(chóng)、以及各種算法的Python實(shí)現(xiàn)技巧,需要的朋友可
    2019-09-23
  • 騰訊游戲客戶端開(kāi)發(fā)面試經(jīng)歷分享

    這篇文章主要介紹了騰訊游戲客戶端開(kāi)發(fā)面試經(jīng)歷,總結(jié)分享了騰訊游戲客戶端開(kāi)發(fā)面試所涉及到的考點(diǎn)與注意事項(xiàng),需要的朋友可以參考下
    2019-09-20
  • 最全阿里面試題合集118道+答案(阿里技術(shù)專(zhuān)家分享)

    這篇文章主要介紹了最全阿里面試題合集118道+答案(阿里技術(shù)專(zhuān)家分享),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-10
  • 新浪java面試題與參考答案解析

    這篇文章主要介紹了新浪java面試題與參考答案,總結(jié)分析了新浪java面試網(wǎng)絡(luò)編程題目與參考答案,涉及java socket通信客戶端與服務(wù)器端功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-01-09
  • 網(wǎng)易社招面試流程與經(jīng)驗(yàn)總結(jié)【純干貨分享】

    這篇文章主要介紹了網(wǎng)易社招面試流程與經(jīng)驗(yàn),總結(jié)分析了網(wǎng)易社招面試主要流程,以及遇到的各種問(wèn)題,并給出了相應(yīng)的參考意見(jiàn),需要的朋友可以參考下
    2020-01-08
  • 最全的BAT大廠面試題整理(小結(jié))

    這篇文章主要介紹了最全的BAT大廠面試題整理(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-07
  • 工作一年后騰訊社招面試經(jīng)歷與經(jīng)驗(yàn)分享

    這篇文章主要介紹了工作一年后騰訊社招面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分析了筆者參與騰訊社招面試過(guò)程中所遇到的問(wèn)題與相關(guān)經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下
    2020-01-06

最新評(píng)論

鹤山市| 景泰县| 宁南县| 云和县| 建昌县| 宝应县| 康马县| 波密县| 大理市| 哈尔滨市| 那坡县| 自治县| 科技| 莆田市| 陈巴尔虎旗| 邢台县| 吴旗县| 洪泽县| 烟台市| 康定县| 和静县| 密云县| 浦江县| 沂源县| 万安县| 墨脱县| 深州市| 资兴市| 屯门区| 佛坪县| 商南县| 兴山县| 彩票| 铜川市| 漾濞| 崇礼县| 玛多县| 安顺市| 商丘市| 建阳市| 敦煌市|