红菊直播官方版-红菊直播免费版app下载-红菊直播永久免费版下载

網(wǎng)站首頁(yè)
手機(jī)版

史上最全Unity面試試題,你會(huì)幾個(gè)

更新時(shí)間:2024-06-10 21:29作者:小樂(lè)

轉(zhuǎn):https://blog.csdn.net/Sindywangkeai/article/details/77649471 locationNum=9fps=1

10:MeshRender中材質(zhì)和共享材質(zhì)有什么區(qū)別?

修改sharedMaterial將更改使用該材質(zhì)的所有對(duì)象的外觀,并且還將更改存儲(chǔ)在項(xiàng)目中的材質(zhì)設(shè)置。不建議修改sharedMaterial返回的材質(zhì)。如果要修改渲染器的材質(zhì),請(qǐng)改用材質(zhì)。

11:Unity提供了幾種光源,它們是什么?

四種。

定向光: 定向光

點(diǎn)光源:Point Light

聚光燈:聚光燈

區(qū)域光:區(qū)域光

12:簡(jiǎn)單描述對(duì)象池。你認(rèn)為FPS中的對(duì)象池適合什么用途?

對(duì)象池存放一塊需要重復(fù)調(diào)用的空間。當(dāng)一個(gè)對(duì)象大量生成時(shí),每次銷毀和創(chuàng)建都會(huì)非常耗時(shí)。通過(guò)對(duì)象池,將暫時(shí)不用的對(duì)象放入池(即集合)中。 ),當(dāng)想要重新生成這個(gè)對(duì)象時(shí),首先去池中檢查是否有可用的對(duì)象。如果有,直接取出來(lái)使用,不用再創(chuàng)建。如果池中沒(méi)有可用對(duì)象,則需要重新創(chuàng)建它。用空間交換時(shí)間,達(dá)到游戲的高速運(yùn)行效果。 FPS游戲中經(jīng)常被大量復(fù)制的物體包括子彈、敵人、粒子等。

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

Rigidbody具有完全真實(shí)的物理特性。它是Unity中物理系統(tǒng)最基本的組成部分,包含常用的物理特性。 CharacterController可以說(shuō)是一個(gè)有限的Rigidbody,具有一定的物理效果但并不完全真實(shí)。這正是Unity 想要實(shí)現(xiàn)的目標(biāo)。打包的組件使開發(fā)人員能夠輕松開發(fā)第一人稱視角游戲。

十四:簡(jiǎn)述prefab的使用

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

十五:請(qǐng)簡(jiǎn)要描述sealed關(guān)鍵字在類聲明和函數(shù)聲明中使用時(shí)的作用。

密封類是密封類。當(dāng)類被聲明時(shí),可以防止其他類繼承這個(gè)類。在方法中聲明它可以防止派生類重寫此方法。

16:請(qǐng)簡(jiǎn)要描述私有、公共、受保護(hù)和內(nèi)部之間的區(qū)別

公開:對(duì)任何班級(jí)和會(huì)員開放,無(wú)限制訪問(wèn)

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

protected:對(duì)該類及其派生類公開

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

十七:使用Unity3d實(shí)現(xiàn)2D游戲有多少種方法?

1.使用自己的GUI,Unity4.6之后出現(xiàn)的UGUI

2.將相機(jī)的Projection值調(diào)整為Orthographic(正交投影),與z軸無(wú)關(guān);

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

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

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

十九:Unity3d的物理引擎中,施加力的方式有多種,分別介紹。

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

二十:什么是鏈條接頭?

鉸鏈關(guān)節(jié)可以模擬兩個(gè)物體用鏈條連接在一起的情況。它可以使兩個(gè)物體在固定距離內(nèi)相互移動(dòng)而不產(chǎn)生任何力,但達(dá)到固定距離后會(huì)產(chǎn)生拉力。

二十一:用什么函數(shù)來(lái)旋轉(zhuǎn)物體本身?

變換.旋轉(zhuǎn)()

二十二:Unity3d提供了一個(gè)類(PlayerPrefs)用于保存和讀取數(shù)據(jù)。請(qǐng)列出保存和讀取塑料數(shù)據(jù)的功能。

PlayerPrefs.SetInt() PlayerPrefs.GetInt()

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

Awake——OnEnableStart——Update——FixedUpdate——LateUpdate——OnGUI——OnDisable——OnDestroy

二十四:物理更新一般放在哪些系統(tǒng)功能中?

每繪制一個(gè)固定幀就會(huì)執(zhí)行一次FixedUpdate。與Update不同的是,F(xiàn)ixedUpdate是在渲染幀執(zhí)行的。如果你的渲染效率較低,F(xiàn)ixedUpdate 調(diào)用次數(shù)也會(huì)相應(yīng)減少。 FixUpdate更適合物理引擎計(jì)算,因?yàn)樗c每一幀的渲染相關(guān)。更新更適合控制。

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

游戲界面可以看到很多攝像頭的混合體。

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

使用Destroy() 方法;

二十七:請(qǐng)描述Unity3d中組件出現(xiàn)數(shù)據(jù)丟失的原因。

通常綁定到組件的對(duì)象會(huì)被刪除。

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

LOD(細(xì)節(jié)級(jí)別)是最常用的游戲優(yōu)化技術(shù)。它根據(jù)模型的位置和重要性來(lái)決定對(duì)象渲染的資源分配,減少不重要對(duì)象的面數(shù)和細(xì)節(jié),從而實(shí)現(xiàn)高效的渲染操作。缺點(diǎn)是增加了內(nèi)存。

二十九:什么是MipMap,它有什么作用?

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

三十:請(qǐng)描述Interface和抽象類的區(qū)別

抽象類是指類中可能已經(jīng)有一些方法的具體定義,但接口是公公只能定義各個(gè)方法的接口,具體的實(shí)現(xiàn)代碼不能在成員方法中。類由子類繼承。當(dāng)父類已經(jīng)有具有實(shí)際功能的方法時(shí),不需要在子類中實(shí)現(xiàn)該方法。而是直接引用父類的方法。子類也可以重寫父類的方法。實(shí)現(xiàn)接口時(shí),必須實(shí)現(xiàn)接口中的所有方法,一個(gè)都不能漏掉。

三十一:Net和Mono是什么關(guān)系?

Mono是.net的一個(gè)開源跨平臺(tái)工具,類似于Java虛擬機(jī)。 Java本身并不是跨平臺(tái)的語(yǔ)言,但是運(yùn)行在虛擬機(jī)上可以實(shí)現(xiàn)跨平臺(tái)。net只能運(yùn)行在Windows下,而mono可以跨平臺(tái)運(yùn)行,可以運(yùn)行在Linux、Unix、Mac OS等操作系統(tǒng)上。

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

Unity的腳本語(yǔ)言運(yùn)行在Mono的.Net平臺(tái)上,可以使用.NET庫(kù),這也為XML、數(shù)據(jù)庫(kù)、正則表達(dá)式等問(wèn)題提供了很好的解決方案。 Unity 中的腳本經(jīng)過(guò)編譯并且運(yùn)行速度非???。這三種語(yǔ)言的實(shí)際功能和運(yùn)行速度是相同的,差異主要體現(xiàn)在語(yǔ)言特性上。 JavaScript、C#、Boo

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

Transform的父類是Component

三十四:向量的點(diǎn)積、叉積和歸一化是什么意思?

1.點(diǎn)積描述了兩個(gè)向量的相似度。結(jié)果越大,兩個(gè)向量越相似。它也可以代表投影。

2.叉積得到的向量垂直于原來(lái)的兩個(gè)向量

3.標(biāo)準(zhǔn)化向量:只關(guān)心方向而不關(guān)心大小時(shí)使用

三十五:為什么每個(gè)人都在尋找移動(dòng)設(shè)備上U3D 原生GUI 的替代品

不美觀,OnGUI耗時(shí)、效率低、使用不方便

三十六:請(qǐng)簡(jiǎn)述如何在不同分辨率下保持UI一致性

NGUI很好地解決了這個(gè)問(wèn)題。屏幕分辨率自適應(yīng)的原理是計(jì)算屏幕的長(zhǎng)寬比和原來(lái)預(yù)設(shè)的屏幕分辨率找到一個(gè)比較值,然后修改攝像頭的尺寸。 UGUI也通過(guò)錨點(diǎn)和中心點(diǎn)以及分辨率解決了這個(gè)問(wèn)題

三十七:什么是LightMap?

LightMap:的意思是在3D軟件中實(shí)現(xiàn)良好的光照,然后將場(chǎng)景各個(gè)表面的光照渲染輸出到貼圖上,最后通過(guò)引擎粘貼到場(chǎng)景上,讓物體有光照的感覺。

三十八:Unity和cocos2d的區(qū)別

1、Unity3D支持C#、javascript等,cocos2d-x支持c++、Html5、Lua等。

2.cocos2d開源且免費(fèi)

3、Unity3D支持iOS、Android、Flash、Windows、Mac、Wii等平臺(tái)的游戲開發(fā),cocos2d-x支持iOS、Android、WP等。

三十九:C#和C++有什么區(qū)別?

簡(jiǎn)單來(lái)說(shuō):當(dāng)比較C#和C++時(shí),最重要的特點(diǎn)是C#是一種完全面向?qū)ο蟮恼Z(yǔ)言,而C++則不是。此外,C#基于IL中間語(yǔ)言和.NET Framework CLR。在可移植性和可維護(hù)性方面,無(wú)論是性能還是健壯性都比C++有很大的提高。 C#的設(shè)計(jì)目標(biāo)是開發(fā)快速、穩(wěn)定和可擴(kuò)展的應(yīng)用程序。當(dāng)然,一些底層操作也可以通過(guò)Interop和Pinvoke來(lái)完成。更詳細(xì)的區(qū)別可以參考這里

四十:結(jié)構(gòu)體和類有什么區(qū)別?

結(jié)構(gòu)體是值類型,而類是引用類型。 (根據(jù)數(shù)據(jù)存儲(chǔ)的角度來(lái)劃分值類型和引用類型)值類型用于存儲(chǔ)數(shù)據(jù)的值,引用類型用于存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。然后將該結(jié)構(gòu)用作值,類通過(guò)引用對(duì)實(shí)際數(shù)據(jù)進(jìn)行操作。

41:什么是ref參數(shù)和out參數(shù)?有什么不同?

ref 和out 參數(shù)具有相同的效果。他們使用關(guān)鍵字查找主函數(shù)中定義的變量的內(nèi)存地址,并通過(guò)方法體中的語(yǔ)法更改其大小。不同的是輸出參數(shù)必須初始化參數(shù)。 ref 必須被初始化,并且out 參數(shù)必須在函數(shù)中被賦值。 ref 參數(shù)是引用,out 參數(shù)是輸出參數(shù)。

四十二:C#的委托是什么?什么用途?

委托類似于安全指針引用。使用時(shí),將其視為類而不是方法,相當(dāng)于對(duì)方法列表的引用。有用性:使用委托允許程序員將方法引用封裝在委托對(duì)象中。然后,可以將該委托對(duì)象傳遞給可以調(diào)用引用方法的代碼,而無(wú)需在編譯時(shí)知道將調(diào)用哪個(gè)方法。與C 或C++ 中的函數(shù)指針不同,委托是面向?qū)ο笄翌愋桶踩摹?

四十三:C#中的排序方法有哪些?

選擇排序、冒泡排序、快速排序、插入排序、希爾排序、歸并排序

四十四:碰撞物體射線檢測(cè)原理是什么?

光線是從3D 世界中的一點(diǎn)向一個(gè)方向發(fā)射的一條無(wú)盡的線。當(dāng)它與發(fā)射軌跡中的其他物體碰撞時(shí),它將停止發(fā)射。

四十五:Unity中相機(jī)的裁剪平面有什么作用?調(diào)整Near和Fare值時(shí)需要注意什么?

剪裁平面。開始渲染和停止渲染時(shí)距相機(jī)的距離。

四十六:如何防止現(xiàn)有的GameObject在LoadLevel后被卸載?

void Awake(){ DontDestroyOnLoad(transform.gameObject);} 四十七:請(qǐng)簡(jiǎn)單描述一下GC(垃圾回收)的原因,并描述如何避免?

GC回收堆上的內(nèi)存

避免: 1.減少new生成對(duì)象的次數(shù)

2.使用公共對(duì)象(靜態(tài)成員)

3.用StringBuilder替換String

四十八:反射的實(shí)現(xiàn)原理?

能夠查看元數(shù)據(jù)并收集有關(guān)元數(shù)據(jù)的類型信息。實(shí)現(xiàn)原理:運(yùn)行時(shí)根據(jù)程序集及其中的類型獲取元數(shù)據(jù)。以下是實(shí)施步驟:

1.使用System.Reflection導(dǎo)入;

2.Assembly.Load("Assembly")加載程序集,返回類型是Assembly

3.獲取程序集中所有類的名稱

foreach (Type type in assembly.GetTypes()){ string t=type.Name;}4. Type type=assembly.GetType("Assembly.Class Name");獲取當(dāng)前類的類型

5. Activator.CreateInstance(類型);創(chuàng)建該類型的實(shí)例

6. MethodInfo mInfo=type.GetMethod("方法名稱");獲取當(dāng)前方法

7. m.Info.Invoke(null, 方法參數(shù));

四十九:簡(jiǎn)述四元數(shù)的作用以及四元數(shù)對(duì)于歐拉角的優(yōu)點(diǎn)?

四元數(shù)用于表示旋轉(zhuǎn)

相對(duì)歐拉角的優(yōu)點(diǎn):

1.能夠進(jìn)行增量旋轉(zhuǎn)

2.避免通用鎖

3.給定方向有兩種表達(dá)方式,每種都是負(fù)數(shù)(歐拉角的表達(dá)方式有無(wú)數(shù)種)

五十:移動(dòng)攝像機(jī)動(dòng)作位于哪個(gè)函數(shù)中?為什么會(huì)出現(xiàn)在這個(gè)函數(shù)中呢?

LateUpdate 在所有更新完成后調(diào)用,更適合命令腳本的執(zhí)行。官網(wǎng)上的例子是攝像頭跟隨。相機(jī)跟隨是在所有更新操作完成后進(jìn)行的。否則,攝像機(jī)可能已經(jīng)前進(jìn),但視角中沒(méi)有角色的空框。

第51章:GPU如何工作

簡(jiǎn)而言之,GPU圖形(處理)管道完成以下工作:(不一定按以下順序) 頂點(diǎn)處理:在此階段,GPU讀取描述3D圖形外觀的頂點(diǎn)數(shù)據(jù),并確定3D圖形的形狀基于頂點(diǎn)數(shù)據(jù)的圖形。和位置關(guān)系來(lái)建立3D 圖形的骨架。在支持DX8和DX9規(guī)范的GPU中,這些任務(wù)是由硬件實(shí)現(xiàn)的Vertex Shader(定點(diǎn)著色器)完成的。光柵化計(jì)算:顯示器實(shí)際顯示的圖像是由像素組成的。我們需要將上面生成的圖形上的點(diǎn)和線通過(guò)一定的算法轉(zhuǎn)換成對(duì)應(yīng)的像素。將矢量圖形轉(zhuǎn)換為一系列像素的過(guò)程稱為光柵化。例如,數(shù)學(xué)表示的對(duì)角線段最終會(huì)轉(zhuǎn)化為階梯狀的連續(xù)像素點(diǎn)。紋理映射:頂點(diǎn)單元生成的多邊形僅構(gòu)成3D物體的輪廓,紋理映射(texture mapping)工作完成多變形表面的映射。通俗地說(shuō),就是將相應(yīng)的圖片粘貼到多邊形的表面上,從而生成“逼真”的圖形。 TMU(紋理映射單元)就是用來(lái)完成這項(xiàng)工作的。像素處理:在這個(gè)階段(每個(gè)像素的光柵化期間)GPU完成像素的計(jì)算和處理,以確定每個(gè)像素的最終屬性。在支持DX8和DX9規(guī)范的GPU中,這些任務(wù)由硬件實(shí)現(xiàn)的Pixel Shader完成。最終輸出:ROP(光柵化引擎)最終完成像素的輸出。一幀渲染完成后,會(huì)被發(fā)送到顯存幀緩沖區(qū)。

總結(jié):一般來(lái)說(shuō),GPU的工作就是完成3D圖形的生成,將圖形映射到對(duì)應(yīng)的像素上,計(jì)算每個(gè)像素以確定最終的顏色并完成輸出。

五十二:什么是渲染管線?

它是指為了在監(jiān)視器上顯示圖像而進(jìn)行的一系列必要的操作。渲染管道中的許多步驟都涉及將幾何對(duì)象從一種坐標(biāo)系轉(zhuǎn)換到另一種坐標(biāo)系。主要步驟是:

局部坐標(biāo)-視圖坐標(biāo)-反向裁剪-光照-裁剪-投影-視圖變換-光柵化

五十三:如何優(yōu)化內(nèi)存?

方法有很多,比如

1、壓縮內(nèi)置類庫(kù);

2、隱藏暫時(shí)不用的、以后需要用到的對(duì)象,而不是直接銷毀;

3、釋放AssetBundle占用的資源;

4.減少模型的邊數(shù),減少模型中的骨骼數(shù)量,減小紋理的尺寸;

5、使用光照貼圖、使用多層次細(xì)節(jié)(LOD)、使用著色器(Shader)、使用預(yù)制件(Prefab)。

6.代碼中生成的臨時(shí)變量較少

五十四:如何動(dòng)態(tài)加載資源?它們之間的區(qū)別

1.Resources.Load();

2.資產(chǎn)包

差異參考

五十五:請(qǐng)描述一下游戲動(dòng)畫有哪些類型及其原理?

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

聯(lián)合動(dòng)畫:將角色分為幾個(gè)獨(dú)立的部分,一個(gè)部分對(duì)應(yīng)一個(gè)網(wǎng)格模型,各部分的動(dòng)畫連接成一個(gè)整體動(dòng)畫。人物性格更加靈活。 Quake2中使用了這種動(dòng)畫;

骨骼動(dòng)畫是一種廣泛使用的動(dòng)畫方法,它綜合了上述兩種方法的優(yōu)點(diǎn)。骨骼根據(jù)人物的特征形成一定的層次結(jié)構(gòu)。它們通過(guò)關(guān)節(jié)連接,可以進(jìn)行相對(duì)運(yùn)動(dòng)。皮膚充當(dāng)骨骼外部的單個(gè)網(wǎng)格并決定角色。外貌;

單個(gè)網(wǎng)格模型動(dòng)畫由一個(gè)完整的網(wǎng)格模型組成。將每個(gè)頂點(diǎn)的原始位置及其變化量記錄在動(dòng)畫序列的關(guān)鍵幀中,然后進(jìn)行插值操作以達(dá)到動(dòng)畫效果,使角色動(dòng)畫更加逼真。

五十六:阿爾法混合如何工作

Alpha Blend實(shí)現(xiàn)了透明效果,但只能對(duì)某個(gè)區(qū)域進(jìn)行alpha操作,并且透明度可以設(shè)置。

五十七:編寫光照計(jì)算中diffuse的計(jì)算公式

漫反射=Kd x colorLight x max(N*L,0); Kd 漫反射系數(shù),colorLight 光的顏色,N 單位法向量,L 單位指向光源的向量,其中N 為點(diǎn)乘以L,如果結(jié)果小于等于0,則漫反射為0。

五十八:影子判斷的兩種方法及工作原理。

本影和半影:參考本影和半影

本影:場(chǎng)景表面上不直接被光源照亮的區(qū)域(全黑、輪廓清晰的區(qū)域)。

半影:場(chǎng)景表面上被某些特定光源直接照亮但并非全部特定光源照亮的區(qū)域(半明半暗區(qū)域)

工作原理:將光源發(fā)出的光投射到物體的所有可見表面上,將這些表面投影到場(chǎng)景中得到投影面,然后將這些投影面與場(chǎng)景中的其他平面相交得到陰影多邊形,并保存這些陰影多邊形信息。然后根據(jù)視點(diǎn)位置對(duì)場(chǎng)景進(jìn)行相應(yīng)的處理,得到需要的視圖(用空間換時(shí)間,每次只需要根據(jù)視點(diǎn)位置進(jìn)行一次陰影計(jì)算,省去了消隱過(guò)程)

五十九:什么是Vertex Shader以及如何計(jì)算?

頂點(diǎn)著色器是在GPU上執(zhí)行的程序,用于替代固定管線中的變換和光照。頂點(diǎn)著色器主要操作頂點(diǎn)。

Vertex Shader 完成輸入頂點(diǎn)從局部空間到齊次空間(齊次空間)的變換過(guò)程。齊次空間是投影空間的下一個(gè)空間。這期間有幾個(gè)過(guò)程:世界變換、視圖變換、投影變換和光照。

六十:下面的代碼運(yùn)行時(shí)會(huì)生成多少個(gè)臨時(shí)對(duì)象?

字符串a(chǎn)=new string(\'abc\');a=(a.ToUpper() + \'123\').Substring(0, 2);在C#中,第一行就會(huì)報(bào)錯(cuò)(在Java中是可行的)。

它應(yīng)該像這樣初始化:

字符串b=new string(new char[]{'a','b','c'});

答案是:5個(gè)臨時(shí)對(duì)象

六十一:下面的代碼運(yùn)行時(shí)會(huì)出現(xiàn)什么問(wèn)題?如何避免呢?

列表ls=new List(new int[] { 1, 2, 3, 4, 5 }); foreach (ls 中的int item){ Console.WriteLine(item * item); ls.Remove(item);} 生成執(zhí)行l(wèi)s.Remove(item) 行中發(fā)生錯(cuò)誤,因?yàn)閒oreach 是只讀的。遍歷時(shí)無(wú)法修改。

六十二:Unity3D支持編寫多線程程序嗎?如果支持的話需要注意什么?

Unity3D組件、對(duì)象和Unity3D系統(tǒng)調(diào)用只能從主線程訪問(wèn)

支持:如果要同時(shí)處理很多事情或者與Unity對(duì)象交互很少,可以使用線程,否則使用協(xié)程。

注意:C#中有一個(gè)lock關(guān)鍵字,用于保證在特定時(shí)間內(nèi)只有一個(gè)線程可以訪問(wèn)特定對(duì)象。

六十三:Unity3D的協(xié)程和C#線程有什么區(qū)別?

多線程程序同時(shí)運(yùn)行多個(gè)線程,在任何給定時(shí)間只有一個(gè)協(xié)程在運(yùn)行,并且這個(gè)正在運(yùn)行的協(xié)程僅在必要時(shí)才被掛起。主線程以外的線程無(wú)法訪問(wèn)Unity3D對(duì)象、組件和方法。

Unity3d沒(méi)有多線程的概念,但是unity也為我們提供了StartCoroutine(協(xié)程)和LoadLevelAsync(關(guān)卡異步加載)方法,用于后臺(tái)加載場(chǎng)景。 StartCoroutine 為什么叫協(xié)程?所謂協(xié)作,是指當(dāng)你在StartCoroutine的函數(shù)體中處理一段代碼時(shí),使用yield語(yǔ)句來(lái)等待執(zhí)行結(jié)果。在此期間,不影響主程序的繼續(xù)執(zhí)行,可以協(xié)同工作。

六十四:矩陣乘法的含義及注意點(diǎn)

用于表示線性變換:旋轉(zhuǎn)、縮放、投影、平移、仿射

注意矩陣蠕變:誤差的累積

六十五:為什么unicode環(huán)境下動(dòng)態(tài)字體比靜態(tài)字體好

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

使用動(dòng)態(tài)字體時(shí),Unity不會(huì)預(yù)先生成所有字體的字符紋理。當(dāng)需要支持亞洲語(yǔ)言或者更大的字體時(shí),如果使用普通紋理,字體紋理會(huì)很大。

六十六:當(dāng)一個(gè)高速運(yùn)動(dòng)的小物體與另一個(gè)較大的物體相撞時(shí)會(huì)發(fā)生什么?如何避免呢?

穿透(碰撞檢測(cè)失?。?

六十七:請(qǐng)簡(jiǎn)單描述一下OnBecameVisible和OnBecameInvisible的發(fā)生時(shí)機(jī),以及這對(duì)回調(diào)函數(shù)的意義?

當(dāng)切換對(duì)象是否可見時(shí)??捎糜趦H當(dāng)對(duì)象可見時(shí)才需要執(zhí)行的計(jì)算。

六十八:什么是動(dòng)態(tài)批處理?與靜態(tài)批處理有什么區(qū)別?

如果動(dòng)態(tài)對(duì)象共享相同的材質(zhì),Unity 會(huì)自動(dòng)批處理這些對(duì)象。動(dòng)態(tài)批處理操作自動(dòng)完成,不需要您執(zhí)行其他操作。

區(qū)別:動(dòng)態(tài)批處理中的一切都是自動(dòng)的,不需要任何操作,并且可以移動(dòng)對(duì)象,但有很多限制。靜態(tài)批處理:自由度高,限制少。缺點(diǎn)可能是占用內(nèi)存較多,并且所有靜態(tài)批處理后的對(duì)象都無(wú)法再移動(dòng)。

參考

六十九:簡(jiǎn)述StringBuilder和String的區(qū)別?

字符串是字符串常量。

StringBuffer是一個(gè)字符串變量并且是線程安全的。

StringBuilder 是一個(gè)字符串變量,并且是線程不安全的。

String類型是一個(gè)不可變的對(duì)象。每次改變一個(gè)String時(shí),都需要生成一個(gè)新的String對(duì)象,然后指針指向一個(gè)新的對(duì)象。如果一個(gè)對(duì)象在循環(huán)中不斷變化,那么它也必須不斷變化。生成新的對(duì)象,所以效率很低。建議不要使用String 類型,因?yàn)镾tring 對(duì)象不斷變化。

StringBuilder對(duì)象在執(zhí)行字符串連接操作時(shí)會(huì)修改原始字符串,從而提高性能。我們?cè)谌粘J褂弥锌赡芏贾肋@一點(diǎn)。當(dāng)連接操作頻繁時(shí),使用StringBuilder對(duì)象。

七十:Unity3D Shader有哪些類型,有什么區(qū)別?

表面著色器具有更高的抽象級(jí)別,可以輕松地以簡(jiǎn)潔的方式實(shí)現(xiàn)復(fù)雜的著色。表面著色器在前向和延遲渲染模式下都能正常工作。

頂點(diǎn)片段著色器可以非常靈活地達(dá)到想要的效果,但是需要編寫更多的代碼,并且很難與Unity的渲染管線完美集成。

固定功能管線著色器可用作前兩個(gè)著色器的備份選項(xiàng)。當(dāng)硬件無(wú)法運(yùn)行那些很酷的Shaders時(shí),也可以通過(guò)固定功能的管線著色器來(lái)繪制一些基本內(nèi)容。

七十一:已知strcpy函數(shù)的原型為:char * strcpy(char * strDest, const char * strSrc); 1、實(shí)現(xiàn)strcpy函數(shù),不調(diào)用庫(kù)函數(shù)。 2.解釋為什么返回char *

char * strcpy(char * strDest,const char * strSrc){ if ((strDest==NULL)||(strSrc==NULL)) throw \'無(wú)效參數(shù)\'; char * strDestCopy=strDest; while ( (*strDest++=*strSrc++)!='\0'); return strDestCopy;}72: C# 中的四個(gè)訪問(wèn)修飾符是什么?有什么不同?

1. 屬性修飾符2. 訪問(wèn)修飾符3. 類修飾符4. 成員修飾符。

屬性修飾符:

可序列化:按值將對(duì)象編組到遠(yuǎn)程服務(wù)器。

STATread:表示單線程套件,是一種線程模型。

MATAThread:意思是多線程套件,也是一種線程模型。

訪問(wèn)修飾符:

公共:不受限制的訪問(wèn)。

private:只有包含該成員的類才能訪問(wèn)它。

內(nèi)部:只有當(dāng)前項(xiàng)目可以訪問(wèn)它。

protected:只有包含該成員的類和派生類才能訪問(wèn)它。

類修飾符:

抽象:抽象類。表示一個(gè)類只能作為其他類的基類。

密封:密封類。表示類不能被繼承。當(dāng)然,密封類不能同時(shí)是抽象類,因?yàn)槌橄罂偸窍M焕^承。

會(huì)員修改器:

Abstract:表示該方法或?qū)傩晕磳?shí)現(xiàn)。

密封:密封方法??梢苑乐勾朔椒ㄔ谂缮愔斜恢貙憽2⒎穷惖拿總€(gè)成員方法都可以用作密封方法。必須重載基類的虛方法來(lái)提供具體的實(shí)現(xiàn)方法。因此,在方法聲明中,sealed修飾符總是與override修飾符一起使用。

代表:代表。用于定義函數(shù)指針。 C#中的事件驅(qū)動(dòng)是基于委托+事件。

const:指定該成員的值是只讀的,不允許修改。

事件:聲明一個(gè)事件。

extern:表示該方法是外部實(shí)現(xiàn)的

現(xiàn)。 override:重寫。對(duì)由基類繼承成員的新實(shí)現(xiàn)。 readonly:指示一個(gè)域只能在聲明時(shí)以及相同類的內(nèi)部被賦值。 static:指示一個(gè)成員屬于類型本身,而不是屬于特定的對(duì)象。即在定義后可不經(jīng)實(shí)例化,就可使用。 virtual:指示一個(gè)方法或存取器的實(shí)現(xiàn)可以在繼承類中被覆蓋。 new:在派生類中隱藏指定的基類成員,從而實(shí)現(xiàn)重寫的功能。 若要隱藏繼承類的成員,請(qǐng)使用相同名稱在派生類中聲明該成員,并用 new 修飾符修飾它。 七十三:Heap與Stack有何區(qū)別? 1.heap是堆,stack是棧。 2.stack的空間由操作系統(tǒng)自動(dòng)分配和釋放,heap的空間是手動(dòng)申請(qǐng)和釋放的,heap常用new關(guān)鍵字來(lái)分配。 3.stack空間有限,heap的空間是很大的自由區(qū)。 七十四:值類型和引用類型有何區(qū)別? 1.值類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的棧中;引用類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的堆中,而內(nèi)存單元中只存放堆中對(duì)象的地址。 2.值類型存取速度快,引用類型存取速度慢。 3.值類型表示實(shí)際數(shù)據(jù),引用類型表示指向存儲(chǔ)在內(nèi)存堆中的數(shù)據(jù)的指針或引用 4.值類型繼承自System.ValueType,引用類型繼承自System.Object 5.棧的內(nèi)存分配是自動(dòng)釋放;而堆在.NET中會(huì)有GC來(lái)釋放 6.值類型的變量直接存放實(shí)際的數(shù)據(jù),而引用類型的變量存放的則是數(shù)據(jù)的地址,即對(duì)象的引用。 七十五:請(qǐng)寫出求斐波那契數(shù)列任意一位的值得算法 遞歸實(shí)現(xiàn): int Fib1(int index){ if(index迭代實(shí)現(xiàn): int Fib5(int index){ if(index參看更多實(shí)現(xiàn)方法 七十六:協(xié)同程序的執(zhí)行代碼是什么?有何用處,有何缺點(diǎn)? function Start() { // 協(xié)同程序WaitAndPrint在Start函數(shù)內(nèi)執(zhí)行,可以視同于它與Start函數(shù)同步執(zhí)行. StartCoroutine(WaitAndPrint(2.0)); print (\"Before WaitAndPrint Finishes \" + Time.time );} function WaitAndPrint (waitTime : float) { // 暫停執(zhí)行waitTime秒 yield WaitForSeconds (waitTime); print (\"WaitAndPrint \"+ Time.time );} 作用:一個(gè)協(xié)同程序在執(zhí)行過(guò)程中,可以在任意位置使用yield語(yǔ)句。yield的返回值控制何時(shí)恢復(fù)協(xié)同程序向下執(zhí)行。協(xié)同程序在對(duì)象自有幀執(zhí)行過(guò)程中堪稱優(yōu)秀。協(xié)同程序在性能上沒(méi)有更多的開銷。 缺點(diǎn):協(xié)同程序并非真線程,可能會(huì)發(fā)生堵塞。 七十七:什么是里氏代換元?jiǎng)t? 里氏替換原則(Liskov Substitution Principle LSP)面向?qū)ο笤O(shè)計(jì)的基本原則之一。通俗點(diǎn):就是子類對(duì)象可以賦值給基類對(duì)象,基類對(duì)象不能賦值給子類對(duì)象 參考 七十八:Mock和Stub有何區(qū)別? Mock與Stub的區(qū)別:Mock:關(guān)注行為驗(yàn)證。細(xì)粒度的測(cè)試,即代碼的邏輯,多數(shù)情況下用于單元測(cè)試。Stub:關(guān)注狀態(tài)驗(yàn)證。粗粒度的測(cè)試,在某個(gè)依賴系統(tǒng)不存在或者還沒(méi)實(shí)現(xiàn)或者難以測(cè)試的情況下使用,例如訪問(wèn)文件系統(tǒng),數(shù)據(jù)庫(kù)連接,遠(yuǎn)程協(xié)議等。 七十九:概述序列化: 序列化簡(jiǎn)單理解成把對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。比如,可以序列化一個(gè)對(duì)象,然后使用HTTP通過(guò)Internet在客戶端和服務(wù)器端之間傳輸該對(duì)象 八十:堆和棧的區(qū)別? 棧通常保存著我們代碼執(zhí)行的步驟,如在代碼段1中 AddFive()方法,int pValue變量,int result變量等等。而堆上存放的則多是對(duì)象,數(shù)據(jù)等。我們可以把棧想象成一個(gè)接著一個(gè)疊放在一起的盒子。當(dāng)我們使用的時(shí)候,每次從最頂部取走一個(gè)盒子。棧也是如此,當(dāng)一個(gè)方法(或類型)被調(diào)用完成的時(shí)候,就從棧頂取走,接著下一個(gè)。堆則不然,像是一個(gè)倉(cāng)庫(kù),儲(chǔ)存著我們使用的各種對(duì)象等信息,跟棧不同的是他們被調(diào)用完畢不會(huì)立即被清理掉。 八十一:概述c#中代理和事件? 代理就是用來(lái)定義指向方法的引用。 C#事件本質(zhì)就是對(duì)消息的封裝,用作對(duì)象之間的通信;發(fā)送方叫事件發(fā)送器,接收方叫事件接收器 八十二:客戶端與服務(wù)器交互方式有幾種? socket通常也稱作”套接字”,實(shí)現(xiàn)服務(wù)器和客戶端之間的物理連接,并進(jìn)行數(shù)據(jù)傳輸,主要有UDP和TCP兩個(gè)協(xié)議。Socket處于網(wǎng)絡(luò)協(xié)議的傳輸層。 http協(xié)議傳輸?shù)闹饕衕ttp協(xié)議 和基于http協(xié)議的Soap協(xié)議(web service),常見的方式是 http 的post 和get 請(qǐng)求,web 服務(wù)。 八十三:Unity和Android與iOS如何交互? Unity可以到處Android和iOS的工程,然后通過(guò)安卓或者iOS的類去給Unity發(fā)消息,調(diào)用Unity中的方法 八十四:如何在Unity3D中查看場(chǎng)景的面試,頂點(diǎn)數(shù)和Draw Call數(shù)?如何降低Draw Call數(shù)? 在Game視圖右上角點(diǎn)擊Stats。降低Draw Call 的技術(shù)是Draw Call Batching 這個(gè)在5.0以后在window-》Profiler下面,快捷鍵是cmd + 7(ctl + 7 八十五:請(qǐng)問(wèn)alpha test在何時(shí)使用?能達(dá)到什么效果? Alpha Test ,中文就是透明度測(cè)試。簡(jiǎn)而言之就是V&F shader中最后fragment函數(shù)輸出的該點(diǎn)顏色值(即上一講frag的輸出half4)的alpha值與固定值進(jìn)行比較。AlphaTest語(yǔ)句通常于Pass{}中的起始位置。Alpha Test產(chǎn)生的效果也很極端,要么完全透明,即看不到,要么完全不透明。 八十六:UNITY3d在移動(dòng)設(shè)備上的一些優(yōu)化資源的方法 1.使用assetbundle,實(shí)現(xiàn)資源分離和共享,將內(nèi)存控制到200m之內(nèi),同時(shí)也可以實(shí)現(xiàn)資源的在線更新 2.頂點(diǎn)數(shù)對(duì)渲染無(wú)論是cpu還是gpu都是壓力最大的貢獻(xiàn)者,降低頂點(diǎn)數(shù)到8萬(wàn)以下,fps穩(wěn)定到了30幀左右 3.只使用一盞動(dòng)態(tài)光,不是用陰影,不使用光照探頭 粒子系統(tǒng)是cpu上的大頭 4.剪裁粒子系統(tǒng) 5.合并同時(shí)出現(xiàn)的粒子系統(tǒng) 6.自己實(shí)現(xiàn)輕量級(jí)的粒子系統(tǒng) animator也是一個(gè)效率奇差的地方 7.把不需要跟骨骼動(dòng)畫和動(dòng)作過(guò)渡的地方全部使用animation,控制骨骼數(shù)量在30根以下 8.animator出視野不更新 9.刪除無(wú)意義的animator 10.animator的初始化很耗時(shí)(粒子上能不能盡量不用animator) 11.除主角外都不要跟骨骼運(yùn)動(dòng)apply root motion 12.絕對(duì)禁止掉那些不帶剛體帶包圍盒的物體(static collider )運(yùn)動(dòng) NUGI的代碼效率很差,基本上runtime的時(shí)候?qū)pu的貢獻(xiàn)和render不相上下 13每幀遞歸的計(jì)算finalalpha改為只有初始化和變動(dòng)時(shí)計(jì)算 14去掉法線計(jì)算 15不要每幀計(jì)算viewsize 和windowsize 16filldrawcall時(shí)構(gòu)建頂點(diǎn)緩存使用array.copy 17.代碼剪裁:使用strip level ,使用.net2.0 subset 18.盡量減少smooth group 19.給美術(shù)定一個(gè)嚴(yán)格的經(jīng)過(guò)科學(xué)驗(yàn)證的美術(shù)標(biāo)準(zhǔn),并在U3D里面配以相應(yīng)的檢查工具 八十七:四元數(shù)有什么作用? 對(duì)旋轉(zhuǎn)角度進(jìn)行計(jì)算時(shí)用到四元數(shù) 八十八:將Camera組件的ClearFlags選項(xiàng)選成Depth only是什么意思?有何用處? 如果把攝像機(jī)的ClearFlags勾選為Deapth Only,那么攝像機(jī)就會(huì)只渲染看得見的對(duì)象,把背景會(huì)完全透明,這種情況一般用在兩個(gè)攝像機(jī)以上的場(chǎng)景中 八十九:在編輯場(chǎng)景時(shí)將GameObject設(shè)置為Static有何作用? 設(shè)置游戲?qū)ο鬄镾tatic時(shí),這些部分被靜態(tài)物體擋住而不可見時(shí),將會(huì)剔除(或禁用)網(wǎng)格對(duì)象。因此,在你的場(chǎng)景中的所有不會(huì)動(dòng)的物體都應(yīng)該標(biāo)記為Static。 九十:有A和B兩組物體,有什么辦法能夠保證A組物體永遠(yuǎn)比B組物體先渲染? 把A組物體的渲染對(duì)列大于B物體的渲染隊(duì)列,通過(guò)shader里面的渲染隊(duì)列來(lái)渲染 九十一:將圖片的TextureType選項(xiàng)分別選為““Texture”和“Sprite”有什么區(qū)別 Sprite作為UI精靈使用,Texture作用模型貼圖使用。Sprite需要2的整次冪,打包圖片省資源 九十二:?jiǎn)栆粋€(gè)Terrain,分別貼3張,4張,5張地表貼圖,渲染速度有什么區(qū)別?為什么? 沒(méi)有區(qū)別,因?yàn)椴还軒讖堎N圖只渲染一次。 九十三:什么是DrawCall?DrawCall高了又什么影響?如何降低DrawCall? Unity中,每次引擎準(zhǔn)備數(shù)據(jù)并通知GPU的過(guò)程稱為一次Draw Call。DrawCall越高對(duì)顯卡的消耗就越大。降低DrawCall的方法: 1. Dynamic Batching 2. Static Batching 3. 高級(jí)特性Shader降級(jí)為統(tǒng)一的低級(jí)特性的Shader。 九十四:實(shí)時(shí)點(diǎn)光源的優(yōu)缺點(diǎn)是什么? 可以有cookies – 帶有 alpha通道的立方圖(Cubemap )紋理。點(diǎn)光源是最耗費(fèi)資源的。 九十五:Unity的Shader中,Blend SrcAlpha OneMinusSrcAlpha這句話是什么意思? 作用就是Alpha混合。公式:最終顏色 = 源顏色 x 源透明值 + 目標(biāo)顏色 x(1 - 源透明值) 九十六:簡(jiǎn)述水面倒影的渲染原理 原理就是對(duì)水面的貼圖紋理進(jìn)行擾動(dòng),以產(chǎn)生波光玲玲的效果。用shader可以通過(guò)GPU在像素級(jí)別作擾動(dòng),效果細(xì)膩,需要的頂點(diǎn)少,速度快 九十七:簡(jiǎn)述NGUI中Grid和Table的作用? 對(duì)Grid和Table下的子物體進(jìn)行排序和定位 九十八:請(qǐng)簡(jiǎn)述NGUI中Panel和Anchor的作用 1. 只要提供一個(gè)half-pixel偏移量,它可以讓一個(gè)控件的位置在Windows系統(tǒng)上精確的顯示出來(lái)(只有這個(gè)Anchor的子控件會(huì)受到影響) 2. 如果掛載到一個(gè)對(duì)象上,那么他可以將這個(gè)對(duì)象依附到屏幕的角落或者邊緣 3.UIPanel用來(lái)收集和管理它下面所有widget的組件。通過(guò)widget的geometry創(chuàng)建實(shí)際的draw call。沒(méi)有panel所有東西都不能夠被渲染出來(lái),你可以把UIPanel當(dāng)做Renderer 九十九:能用foreach遍歷訪問(wèn)的對(duì)象需要實(shí)現(xiàn)_接口或聲明____方法的類型 IEnumerable;GetEnumerator 第二部分 1.以下哪一個(gè)選項(xiàng)不屬于Unity引擎所支持的視頻格式文件(D) A.后綴為mov的文件 B.后綴為mpg的文件 C.后綴為avi的文件 D.后綴為swf的文件 2.Unity引擎使用的是左手坐標(biāo)系還是右手坐標(biāo)系(A) A.左手坐標(biāo)系 B.右手坐標(biāo)系 C.可以通過(guò)ProjectSetting切換右手坐標(biāo)系 D.可以通過(guò)Reference切換左手坐標(biāo)系 3.什么是導(dǎo)航網(wǎng)格(NavMesh)(B) A.一種用于描述相機(jī)軌跡的網(wǎng)格 B.一種用于實(shí)現(xiàn)自動(dòng)尋址的網(wǎng)格 C.一種被優(yōu)化過(guò)的物體網(wǎng)格 D.一種用于物理碰撞的網(wǎng)格 4.下列選項(xiàng)中有關(guān)Animator的說(shuō)法錯(cuò)誤的是?(D) A.Animator是Unity引擎中內(nèi)置的組件 B.任何一個(gè)具有動(dòng)畫狀態(tài)機(jī)功能的GameObject都需要一個(gè)Anim組件 C.它主要用于角色行為的設(shè)置,包括StateMachine、混合樹BlendTrees以及同通過(guò)腳本控制的事件 D.Animator同Animation組件的用法是相同的 5.Application.loadLevel命令為(A) A.加載關(guān)卡 B.異步加載關(guān)卡 C.加載動(dòng)作 D.加載動(dòng)畫 6.下列選項(xiàng)中,關(guān)于Transform組件的Scale參數(shù)描述正確的是(A) A.Transform組件的Scale參數(shù)不會(huì)影響ParticleSystem產(chǎn)生粒子的大小 B.Transform組件的Scale參數(shù)不會(huì)影響GUITexture的大小 C.添加Collider組件后的GameoObject,其 Collider 組件的尺寸不受Transform組件的Scale參數(shù)影響 D.添加Rigidbody組件后的物體,大小將不再受Transform組件中 Scale 參數(shù)的影響 7.在 Unity 中的場(chǎng)景中創(chuàng)建 Camera 時(shí),默認(rèn)情況下除了帶有Transform、Camera、GUILayer、Flare Layer 組件之外,還帶有以下哪種組件(C) A.Mouse Look B.FPS Input Controller C.Audio Listener D.Character Motor 8.如果將一個(gè)聲音剪輯文件從Project 視圖拖動(dòng)到 Inspector 視圖或者 Scene 視圖中的游戲?qū)ο笊?,該游戲?qū)ο髸?huì)自動(dòng)添加以下哪種組件(C) A.Audio Listener B.Audio Clip C.Audio Source D.Audio Reverb Zone 9.下列敘述中有關(guān) Prefab 說(shuō)法錯(cuò)誤的是哪一項(xiàng)(B) A.Prefab 是一種資源類型 B.Prefab 是一種可以反復(fù)使用的游戲?qū)ο? C.Prefab 可以多次在場(chǎng)景進(jìn)行實(shí)例 D.當(dāng)一個(gè) Prefab 添加到場(chǎng)景中時(shí),也就是創(chuàng)建了它的一個(gè)實(shí)例 10.關(guān)于 MonoBehaviour.LateUpdate 函數(shù)描述錯(cuò)誤的是:(B) A.當(dāng) MonoBehaviour 類被啟用后,每幀調(diào)用一次 B.常被用于處理 Rigidbody 的更新 C.在所有 Update 函數(shù)執(zhí)行后才能被調(diào)用 D.常被用于實(shí)現(xiàn)跟隨相機(jī)效果,且目標(biāo)物體的位置已經(jīng)在 Update 函數(shù)中被更新 11.下列哪個(gè)函數(shù)不屬于碰撞事件(C) A.OnCollisionEnter B.OnCollisionExit C.OnCollisionUpdate D.OnCollisionStay 12.以下關(guān)于 MonoBehaviour.OnGUI()的描述錯(cuò)誤的是(D) A.如果 MonoBehaviour 沒(méi)有被啟用,則OnGUI函數(shù)不會(huì)被調(diào)用 B.用于繪制和處理 GUI events C.每幀可能會(huì)被繪制多次,每次對(duì)應(yīng)于一個(gè) GUI event D.每幀被調(diào)用一次 13.以下哪組攝像機(jī)中 Normalized View Port Rect 的數(shù)值設(shè)置可以使攝像機(jī)顯示的畫面位于1280*720分辨率的屏幕畫面右上角(D) A.X=640,Y=360,W=640,H=360 B.X=640,Y=0,W=640,H=360 C.X=0,Y=0,W=0.5,H=0.5 D.X=0.5,Y=0.5,W=0.5,H=0.5 14.在Unity引擎中,Collider所指的是什么(D) A.collider 是Unity引擎中所支持的一種資源,可用作存儲(chǔ)網(wǎng)格信息 B.Collider 是Unity引擎中內(nèi)置的一種組件,可用對(duì)網(wǎng)格進(jìn)行渲染 C.Collider 是Unity引擎中所支持的一種資源,可用作游戲?qū)ο蟮淖鴺?biāo)轉(zhuǎn)換 D.Collider 是Unity引擎中內(nèi)置的一種組件,可用作游戲?qū)ο笾g的碰撞檢測(cè) 15.以下關(guān)于WWW.LoadFromCacheOrDownload描述正確的是(C) A.可被用于將 Text Assets 自動(dòng)緩存到本地磁盤 B.可被用于將 Resource 自動(dòng)緩存到本地磁盤 C.可被用于將 Asset Bundles 自動(dòng)緩存到本地磁盤 D.可被用于將任意格式的Unity資源文件自動(dòng)緩存到本地磁盤 16.如何實(shí)現(xiàn)加載外部視頻并播放? 外部視頻文件:目前測(cè)試僅支持ogg格式(設(shè)置網(wǎng)絡(luò)獲取視頻時(shí),必須將MIME設(shè)置.ogg為application/octet-stream) 場(chǎng)景設(shè)置:MainCamera上添加AudioSource腳本;播放物體上(如Plane)添加MovieTest腳本 MovieTest腳本: 17.游戲?qū)ο驜是游戲?qū)ο驛的子物體,游戲?qū)ο驛經(jīng)過(guò)了旋轉(zhuǎn),請(qǐng)寫出游戲B圍繞自身的Y軸進(jìn)行旋轉(zhuǎn)的腳本語(yǔ)句,以及游戲?qū)ο驜圍繞世界坐標(biāo)的Y軸旋轉(zhuǎn)的腳本語(yǔ)句。 繞世界坐標(biāo)旋轉(zhuǎn):transform.Rotate (transform.up*speed*Time.deltatime); 繞自身Y軸旋轉(zhuǎn):transform.Rotate (Vector.up*speed*Time.deltatime); 18.Unity中用過(guò)哪些插件?具體功能 FXMaker,制作粒子特效;NGUI,制作2D界面;EasyTouch,搖桿;shaderForge,制作shader;Itween,制作動(dòng)畫; 19.當(dāng)刪除Unity工程Assets目錄下地meta文件時(shí)會(huì)導(dǎo)致什么?為什么? 會(huì)導(dǎo)致在場(chǎng)景中游戲?qū)ο罂床坏?,或者?bào)錯(cuò),材質(zhì)找不到資源。多人協(xié)作的時(shí)候會(huì)導(dǎo)致資源的重復(fù)產(chǎn)生。因?yàn)槊總€(gè)資源文件都對(duì)應(yīng)一個(gè).meta文件,這個(gè).meta文件中的guid就是唯一標(biāo)識(shí)這個(gè)資源的。材質(zhì)就是通過(guò)這個(gè)guid來(lái)記錄自己使用了那些資源,而且同一個(gè)資源的guid會(huì)因?yàn)椴煌碾娔X而不同,所以當(dāng)你上傳了丟失了.meta文件的資源的時(shí)候,到了別人的機(jī)器上就會(huì)重新產(chǎn)生guid,那個(gè)這個(gè)資源就相當(dāng)于垃圾了。 20.頻繁創(chuàng)建GameObject會(huì)降低程序性能為什么?怎么解決? 頻繁創(chuàng)建游戲?qū)ο?,?huì)增加游戲的Drawcall數(shù),降低幀率,GPU會(huì)一直在渲染繪制??梢酝ㄟ^(guò)對(duì)象池來(lái)管理對(duì)象:當(dāng)需要?jiǎng)?chuàng)建一個(gè)游戲?qū)ο髸r(shí),先去對(duì)象池中查找一下對(duì)象池中是否存在沒(méi)有被正在使用的對(duì)象,如果有的話直接使用這個(gè)對(duì)象,并把它標(biāo)記為正在使用,沒(méi)有話就創(chuàng)建一個(gè),并把它添加到池中,然后標(biāo)記為使用中。一個(gè)游戲?qū)ο笫褂猛戤叺臅r(shí)候,不要銷毀掉,把它放在池中,標(biāo)記為未使用。 ——————————-21.關(guān)于Vector3 的API,以下說(shuō)法正確的是(BC) A.Vector3.normalize 可以獲取一個(gè)三維向量的法線向量 B.Vector3.magnitude 可以獲取一個(gè)三維向量的長(zhǎng)度 C.Vector3.forward 與 Vector3(0,0,1)是一樣的意思 D.Vector3.Dot(向量A,向量B)是用來(lái)計(jì)算向量A與向量B的叉乘 22.以下哪個(gè)函數(shù)在游戲進(jìn)入新場(chǎng)景后會(huì)被馬上調(diào)用(B) A.MonoBehaviour.OnSceneWastLoaded() B.MonoBehaviour.OnSceneEnter() C.MonoBehaviour.OnLevelEnter() D.MonoBehaviour.OnLevelWastLoaded() 23.采用Input.mousePosition 來(lái)獲取鼠標(biāo)在屏幕上的位置,以下表達(dá)正確的是(C) A.左上角為原點(diǎn)(0,0),右下角為(Screen.Width, Screen.Height) B.左下角為原點(diǎn)(0,0),右下角為(Screen.Height, Screen.Width) C.左下角為原點(diǎn)(0,0),右上角為(Screen.Width, Screen.Height) D.左上角為原點(diǎn)(0,0),右下角為(Screen.Height, Screen.Width) 24.如何通過(guò)腳本來(lái)刪除其自身對(duì)應(yīng)的Gameobject(A) A.Destroy(gameObject) B.this.Destroy() C.Destroy(this) D.其他三項(xiàng)都可以 25.某個(gè)GameObject有一個(gè)名為MyScript的腳本,該腳本中有一個(gè)名為DoSomething 的函數(shù),則如何在該Gameobject的另外一個(gè)腳本中調(diào)用該函數(shù)?(A) A.GetComponent().DoSomething() B.GetComponent C.GetComponent().Call(“DoSomething”) D.GetComponent 26.Animator.CrossFade 命令作用是:(B) A.動(dòng)畫放大 B.動(dòng)畫轉(zhuǎn)換 C.Update() D.OnMouseButton() 27.OnEnable,Awake,Start 運(yùn)行時(shí)的發(fā)生順序?(A) A.Awake->OnEnable->Start B.Awake->Start->OnEable C.OnEnable-Awake->Start D.Start->OnEnable->Awake 28.以下選項(xiàng)中,正確的是(D) A.Mathf.Round方法作用是限制 B.Mathf.Clamp方法作用是插值 C.Mathf.Lerp方法作用是四舍五入 D.Mathf.Abs方法作用是取得絕對(duì)值 29.以下選項(xiàng)中,將游戲?qū)ο罄@Z軸逆時(shí)針旋轉(zhuǎn)90度(C) A.transform.rotation = Quaternion.Euler(0,0,90) B.transform.rotation = Quaternion.Angle(0,0,90) C.transform.Rotate(new Vector3(0,0,90)) D.transform.Rotate(new Vector3(90,0,0)) 30.public static function InitializeServer(connections:int,listenPort:int,useNat:bool):NetworkConnectionError;解釋一下函數(shù),參數(shù)以及返回值的意思。 初始化服務(wù)器。connections是允許的入站連接或玩家的數(shù)量,listenPort是要監(jiān)聽的端口,useNat設(shè)置NAT穿透功能。如果你想要這個(gè)服務(wù)器能夠接受連接使用NAT穿透,使用facilitator,設(shè)置這個(gè)為true。如果有錯(cuò)誤會(huì)有返回錯(cuò)誤。 31.請(qǐng)寫出以下函數(shù)的含義和運(yùn)算結(jié)果 delegate b Func(a a1);static void Main(string[] args){ Func mFunc = x => x == 5; Console.WriteLine(mFunc(6));}false,就是定義一個(gè)delegate,返回值類型為 b,有一個(gè)參數(shù),類型為a。 32.編寫一個(gè)函數(shù),輸入一個(gè)32位整數(shù),計(jì)算這個(gè)整數(shù)有多少個(gè)bit為1. uint BitCount (uint n){ uint c = 0; // 計(jì)數(shù)器 while (n > 0) { if ((n & 1) == 1) // 當(dāng)前位是1 ++c; // 計(jì)數(shù)器加1 n >>= 1; // 移位 } return c;}33.某游戲中的裝備系統(tǒng)有16種附加屬性,每種附加屬性使用一個(gè)32位的ID表示(比如10001表示加人物hp的附加屬性,10002表示加人物mp的附加屬性),一件裝備做多有4個(gè)附加屬性,請(qǐng)寫一個(gè)程序輸出所有附加屬性的組合。 # 34.請(qǐng)實(shí)現(xiàn)如下函數(shù),在Unity中有一副骨骼樹,請(qǐng)使用遞歸方式與非遞歸方式實(shí)現(xiàn)先序遍歷,在Unity的Console輸出所有骨骼名。 可能用到的函數(shù) public Transform GetChild(int index);public int Transform.childCountpublic void OutputTree(Transform root){}# 35.簡(jiǎn)要解釋下數(shù)據(jù)庫(kù)中ACID的含義。 ACID是指在可靠數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中,事務(wù)所具有的四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。 原子性是指事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。 一致性是指在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫(kù)的完整性約束沒(méi)有被破壞。這是說(shuō)數(shù)據(jù)庫(kù)事務(wù)不能破壞關(guān)系數(shù)據(jù)的完整性以及業(yè)務(wù)邏輯上的一致性。例如:對(duì)銀行轉(zhuǎn)帳事務(wù),不管事務(wù)成功還是失敗,應(yīng)該保證事務(wù)結(jié)束后ACCOUNT表中aaa和bbb的存款總額為2000元。 隔離性多個(gè)事務(wù)并發(fā)訪問(wèn)時(shí),事務(wù)之間是隔離的,一個(gè)事務(wù)不應(yīng)該影響其它事務(wù)運(yùn)行效果。這指的是在并發(fā)環(huán)境中,當(dāng)不同的事務(wù)同時(shí)操縱相同的數(shù)據(jù)時(shí),每個(gè)事務(wù)都有各自的完整數(shù)據(jù)空間。由并發(fā)事務(wù)所做的修改必須與任何其他并發(fā)事務(wù)所做的修改隔離。事務(wù)查看數(shù)據(jù)更新時(shí),數(shù)據(jù)所處的狀態(tài)要么是另一事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看到中間狀態(tài)的數(shù)據(jù)。 持久性,意味著在事務(wù)完成以后,該事務(wù)所對(duì)數(shù)據(jù)庫(kù)所作的更改便持久的保存在數(shù)據(jù)庫(kù)之中,并不會(huì)被回滾。即使出現(xiàn)了任何事故比如斷電等,事務(wù)一旦提交,則持久化保存在數(shù)據(jù)庫(kù)中。 36.32位整數(shù)256和255按位異或后的結(jié)果是(511) 37.unix/linux 系統(tǒng)將所有的I/O設(shè)備模型化為文件,c語(yǔ)言中的(stdin),(stdout)和(stderr)分別表示標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)錯(cuò)誤。 38.k層二叉樹最多有 2^k - 1 個(gè)結(jié)點(diǎn)。 39.中綴算式(8 + x*y)-2x/3的后綴算式是_。 40.對(duì)以下二叉樹進(jìn)行前序遍歷的結(jié)果是(ABDGCEHF) 41.寫出一個(gè)C類ip地址(192.168.1.105),該ip地址一個(gè)合法的網(wǎng)格掩碼是(255.255.255.224). 42.c/c++程序運(yùn)行時(shí)有堆內(nèi)存與棧內(nèi)存之分,請(qǐng)寫一個(gè)語(yǔ)句在堆中分配一個(gè)整數(shù):(int a = new int(4)),在棧內(nèi)存中分配一個(gè)整數(shù):(int a = 5)。 43.簡(jiǎn)述從C/C++源代碼生成可執(zhí)行文件所經(jīng)歷的幾個(gè)過(guò)程和每個(gè)過(guò)程中所做的事情。 預(yù)編譯-》編譯-》鏈接-》執(zhí)行 44.簡(jiǎn)述TCP建立連接的過(guò)程,最好能畫出時(shí)序圖。 三次握手; 45.有一個(gè)c語(yǔ)言函數(shù) unsigned int getN(unsigned int v){ v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v;}請(qǐng)問(wèn)這個(gè)函數(shù)的功能是什么? 返回的結(jié)果是v 或者 2 ^ 跟下v次方 + 1(比如125返回128,128返回的就是128) 46.列出c語(yǔ)言中static關(guān)鍵字的用法。 static 關(guān)鍵字至少有下列幾個(gè)作用: (1)函數(shù)體內(nèi)static 變量的作用范圍為該函數(shù)體,不同于auto 變量,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時(shí)仍維持上次的值; (2)在模塊內(nèi)的static 全局變量可以被模塊內(nèi)所用函數(shù)訪問(wèn),但不能被模塊外其它函數(shù)訪問(wèn); (3)在模塊內(nèi)的static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明它的模塊內(nèi); (4)在類中的static 成員變量屬于整個(gè)類所擁有,對(duì)類的所有對(duì)象只有一份拷貝; (5)在類中的static 成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收this 指針,因而只能訪問(wèn)類的static 成員變量。 47.解釋一下Unity3D中的協(xié)程(coroutine)是什么?并舉例說(shuō)明 在主線程運(yùn)行的同時(shí)開啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行,協(xié)程很像多線程,但是不是多線程,Unity的協(xié)程實(shí)在每幀結(jié)束之后去檢測(cè)yield的條件是否滿足。 48.物體自旋轉(zhuǎn)使用的函數(shù)叫什么?物體繞某點(diǎn)旋轉(zhuǎn)使用函數(shù)叫什么? 物體自旋轉(zhuǎn)函數(shù)transform.Rotate,物體繞某點(diǎn)旋轉(zhuǎn)函數(shù):transform.RotateAround 49.使用prefab預(yù)制物體有什么好處? 1.Prefab一個(gè)重要的優(yōu)勢(shì)就是編輯prefab資源后,場(chǎng)景中所有使用Prefab克隆的游戲?qū)ο髮⑷渴褂眯戮庉嫷馁Y源,無(wú)需一個(gè)一個(gè)的給場(chǎng)景中的對(duì)象賦值。 2.當(dāng)游戲中需要頻繁創(chuàng)建一個(gè)物體時(shí),使用Prefab能夠節(jié)省內(nèi)存。 3.當(dāng)你在一個(gè)場(chǎng)景中增加一個(gè)Prefabs,你就實(shí)例化了一個(gè)Prefabs。 50.設(shè)有如下關(guān)系表R1和R2 R1(NO, NAME, SEX, AGE, CLASS) R2(NO, SUBJECT, SCORE) 主關(guān)鍵字是NO,其中NO為學(xué)號(hào),NAME為姓名,SEX為性別,AGE為年齡,CLASS為班號(hào),SUBJECT為科目,SCORE為成績(jī)。寫出實(shí)現(xiàn)下列功能的SQL語(yǔ)句。查找學(xué)號(hào)為20的學(xué)生的姓名,科目,成績(jī)。 SELECT NAME,SUBJECT,SCORE FORM R1 INNER JOIN R2 ON R1.NO=R2.NO WHERE R1.NO = 20 51.描述多人聯(lián)網(wǎng)中位置的同步和聊天通訊的實(shí)現(xiàn)方法,并編程寫出如何實(shí)現(xiàn)多人協(xié)同中交互操作。(交互操作例如,血值為100的兩個(gè)角色人物可以相互射擊雙方,射擊一次減去血值10,當(dāng)血值為0的時(shí)候證明已經(jīng)死亡) # 52.當(dāng)實(shí)例化一個(gè)prefab對(duì)象,prefab對(duì)象上面掛載了一個(gè)繼承MonoBehaviour的腳本 1.請(qǐng)問(wèn)這個(gè)腳本分別會(huì)按順序調(diào)用哪些函數(shù),并列出哪些函數(shù)是反復(fù)進(jìn)去的 # 2.請(qǐng)問(wèn)當(dāng)這個(gè)實(shí)例化對(duì)象先調(diào)用了SetActive(false),然后又調(diào)用了SetActive(true),那么這個(gè)腳本依次會(huì)調(diào)用哪些函數(shù)方法? # 3.如果在腳本的Awake()函數(shù)中,調(diào)用了this.gameObject.AddComponent()(PS:GameController為另一個(gè)繼承Mono的腳本類),請(qǐng)問(wèn)此時(shí)腳本函數(shù)的調(diào)用順序是否發(fā)生變化? 53.if(go.CompareTag(“Enemy”))和if(go.tag == “Enemy”)兩種判斷方法哪種是合適的,為什么? 第一種合適,因?yàn)榈诙N會(huì)占用更多內(nèi)存。 54.DestroyImmediate和Destroy的區(qū)別是? DestroyImmeditate 銷毀對(duì)象的時(shí)候,會(huì)立即釋放資源。Destroy只是從該場(chǎng)景銷毀,但是還在內(nèi)存當(dāng)中。 55.詳細(xì)說(shuō)明Unity中資源加載的方法,以及他們的區(qū)別? 1.通過(guò)Resources模塊,調(diào)用它的load函數(shù):可以直接load并返回某個(gè)類型的Object,前提是要把這個(gè)資源放在Resource命名的文件夾下,Unity不關(guān)有沒(méi)有場(chǎng)景引用,都會(huì)將其全部打入到安裝包中。 2.通過(guò)bundle的形式:即將資源打成 asset bundle 放在服務(wù)器或本地磁盤,然后使用WWW模塊get 下來(lái),然后從這個(gè)bundle中l(wèi)oad某個(gè)object。 56.從代碼角度上如何進(jìn)行內(nèi)存優(yōu)化? # 57.分別寫出Invoke和協(xié)程的幾種用法? # 58.以下函數(shù)的功能是計(jì)算斐波那契數(shù)列的第n項(xiàng),請(qǐng)?zhí)羁? int func(int n){ if(n<=2) return 1; return n + func(n-1);}59.C語(yǔ)言中宏定義中若有多行,可以使用字符(\). 60.C語(yǔ)言中32位整數(shù)能表達(dá)的最小的數(shù)是-2^31~2^31-1. 61.使用(點(diǎn)乘)向量運(yùn)算可以很方便地計(jì)算出三維空間中兩個(gè)單位向量之間夾角的cos值。 62.類unix系統(tǒng)中某文件的權(quán)限為:drw-r–r–,用八進(jìn)制數(shù)值形式表示該權(quán)限為(411),首位d代表目錄(文件夾) 63.若有如下程序段,其中s,a,b,c均已定義為整型變量,且a,c均已賦值(c大于0) s = a;for(b = 1; b <= c; b++) s = s + 1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是(B) A.s = a + b B.s = a + c C.s = s + c D.s = b + c 64.簡(jiǎn)述static和const關(guān)鍵字的作用 static 關(guān)鍵字至少有下列幾個(gè)作用: (1)函數(shù)體內(nèi)static 變量的作用范圍為該函數(shù)體,不同于auto 變量,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時(shí)仍維持上次的值; (2)在模塊內(nèi)的static 全局變量可以被模塊內(nèi)所用函數(shù)訪問(wèn),但不能被模塊外其它函數(shù)訪問(wèn); (3)在模塊內(nèi)的static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明它的模塊內(nèi); (4)在類中的static 成員變量屬于整個(gè)類所擁有,對(duì)類的所有對(duì)象只有一份拷貝; (5)在類中的static 成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收this 指針,因而只能訪問(wèn)類的static 成員變量。 const 關(guān)鍵字至少有下列幾個(gè)作用: (1)欲阻止一個(gè)變量被改變,可以使用const 關(guān)鍵字。在定義該const 變量時(shí),通常需要對(duì)它進(jìn)行初始化,因?yàn)橐院缶蜎](méi)有機(jī)會(huì)再去改變它了; (2)對(duì)指針來(lái)說(shuō),可以指定指針本身為const,也可以指定指針?biāo)傅臄?shù)據(jù)為const,或二者同時(shí)指定為const; (3)在一個(gè)函數(shù)聲明中,const 可以修飾形參,表明它是一個(gè)輸入?yún)?shù),在函數(shù)內(nèi)部不能改變其值; (4)對(duì)于類的成員函數(shù),若指定其為const 類型,則表明其是一個(gè)常函數(shù),不能修改類的成員變量 ; (5)對(duì)于類的成員函數(shù),有時(shí)候必須指定其返回值為const 類型,以使得其返回值不為“左值”。 65.用你熟悉的語(yǔ)言及你認(rèn)為最簡(jiǎn)潔的方法書寫計(jì)算 s = 1!+2!+3!+…+num!的代碼。num為輸入,s為輸出。(!代表階乘 3!= 1 * 2 * 3 66.用你熟悉的語(yǔ)言從一個(gè)字符串中去掉相連的重復(fù)字符,例如原字符串“adffjkljaalkjhl”變?yōu)椤癮dfjkljalkjhl” 第三部分1.哪種實(shí)時(shí)光源是Unity中沒(méi)有的?(D) A.點(diǎn)光源 B.方向光 C.聚光燈 D.日光燈 2.如何在Unity中創(chuàng)建地形系統(tǒng)?(D) A.Terrain->Create Terrain B.Component->Create Terrain C.Asset->Create Terrain D.Windows->Create Terrain 3.以下哪種操作步驟可以在場(chǎng)景中添加“Wind Zone” (B) A.Terrain->Wind Zone B.GameObject->Create other->Wind Zone C.Component->Physics->Wind Zone D.Assets->Create->Wind Zone 4.在Unity編輯器中創(chuàng)建一個(gè)Directional Light,以下步驟正確的是?(B) A.Edit->Rendering Setting->Directional Light B.GameObject->Create Other->Directional Light C.Component->Rendering->Directional Light D.Assets->Directional Light 5.下列哪一項(xiàng)不屬于Camera中的“Clear Flags”?(D) A.Skybox B.Solid Color C.Depth Only D.Background 6.以下哪種腳本語(yǔ)言是Unity編輯器所不支持的?(D) A.Javascript B.C# C.Boo D.Perl 7.對(duì)于Prefab,以下說(shuō)法錯(cuò)誤的是?(D) A.Prefab資源可以在項(xiàng)目中多次重復(fù)使用 B.由Prefab實(shí)例出的GameObject,其在Hierarchy試圖中表現(xiàn)為藍(lán)色 C.Prefab上的組件信息一經(jīng)改變,其實(shí)例出的GameObject也會(huì)自動(dòng)改變 D.實(shí)例出的GameObject上的組件信息一經(jīng)改變,其對(duì)應(yīng)出的Prefab也會(huì)自動(dòng)改變 8.下面哪種做法可以打開Unity的Asset Store?(A) A.Windows->Asset Store B.Edit->Asset Store C.File->Asset Store D.Assets->Asset Store 9.在哪個(gè)面板中可以修改物體的空間屬性,如位置,朝向,大小等(B) A.Project B.Inspector C.Hierarchy D.Toolbar 10.如何為一個(gè)Asset 資源設(shè)定一個(gè)Label,從而能夠方便準(zhǔn)確的搜索到?(D) A.在Project窗口中選中一個(gè)Asset,右鍵->Create->Label B.在Project窗口中選中一個(gè)Asset,右鍵->Add Label C.在Project窗口中選中一個(gè)Asset,在Inspector窗口中點(diǎn)擊添加Label的圖標(biāo) D.在Project窗口中選中一個(gè)Asset,在Inspector窗口中點(diǎn)擊按鈕“Add Label” 11.Mecanim系統(tǒng)中,Body Mask的作用是?(D) A指定身體的某一部分是否參與骨骼動(dòng)畫 B.指定身體的某一部分是否參與物理模擬 C.指定身體的某一部分是否可以輸出骨骼信息 D.指定身體的某一部分是否參與渲染 12.以下哪種操作步驟可以打開Unity編輯器的Lightmapping視圖?(C) A.File->Lightmapping B.Assets->Lightmapping C.Windows->Lightmapping D.Component->Lightmapping 13.下列關(guān)于光照貼圖,說(shuō)法錯(cuò)誤的是?(C) A.使用光照貼圖比使用實(shí)時(shí)光源渲染要快 B.可以降低游戲內(nèi)存消耗 C.可以增加場(chǎng)景真實(shí)感 D.多個(gè)物體可以使用同一張光照貼圖 14.如何為物體添加光照貼圖所使用的UV (B) A.不用添加,任何時(shí)候都會(huì)自動(dòng)生成 B.更改物體導(dǎo)入設(shè)置,勾選“Generate Lighting UVs” C.更改物體導(dǎo)入設(shè)置,勾選“Swap UVs” D.更改物體導(dǎo)入設(shè)置,在UVs選項(xiàng)中選擇“Use Lightmaps” 15.在哪個(gè)模塊下可以修改Render Path?(A) A.Camera B.Light C.Render Settings D.Project Setting->Quality 16.以下哪項(xiàng)技術(shù)下不是目前Unity所支持的Occlusion Culling技術(shù)?(D) A.PVS only B.PVS and dynamic objets C.Automatic Portal Generation D.Dynamic Only 17.關(guān)于Vector3的API,以下說(shuō)法正確的是?(C) A.Vector3.normalize可以獲取一個(gè)三維向量的法線向量 B.Vector3.magnitude可以獲取一個(gè)三維向量的長(zhǎng)度 C.Vector3.forward與Vector3(0,0,1)是一樣的 D.Vector3.Dot(向量A,向量B)是用來(lái)計(jì)算向量A與向量B的叉乘 18.下列那些選項(xiàng)不是網(wǎng)格層屬性的固有選項(xiàng)?(B) A.Default B.Walkable C.Not Walkable D.Jump

為您推薦

Dubbo最全面試題 dubbo和zookeeper面試題

基礎(chǔ)知識(shí)為什么要用 Dubbo?隨著服務(wù)化的進(jìn)一步發(fā)展,服務(wù)越來(lái)越多,服務(wù)之間的調(diào)用和依賴關(guān)系也越來(lái)越復(fù)雜,誕生了面向服務(wù)的架構(gòu)體系(SOA),也因此衍生出了一系列相應(yīng)的技術(shù),如對(duì)服務(wù)提供、服務(wù)調(diào)用、連接處理、通信協(xié)議、序列化方式、服務(wù)發(fā)現(xiàn)

2024-06-10 21:28

雅思寫作口語(yǔ)8.5+必備替換詞(雅思 替換詞)

如何讓你的口語(yǔ)用詞脫穎而出?寫作時(shí)突然想不起這個(gè)單詞怎么辦?如果有另外一個(gè)甚至幾個(gè)詞換一下不但解決了你詞荒的困境還能讓你拿高分如何?今天從口語(yǔ)寫作方面,總結(jié)了幾個(gè)中國(guó)考生最喜歡用的“考高分級(jí)”單詞,并找到了高分各類高分替換詞,幫大家做到不落

2024-06-10 21:28

海南專升本每日一題6-28(海南專升本官網(wǎng))

英語(yǔ)(奧賽題庫(kù))閱讀理解:Friends play an important part in our lives, and although we may take the friendship for granted, we often

2024-06-10 21:27

2019年全國(guó)碩士研究生招生考試 英語(yǔ)(一)試題答案及解析(中公版

Section I Use of EnglishDirections:Read the following text. Choose the best word (s) for each numbered blank and mark A,

2024-06-10 21:27

英語(yǔ)四六級(jí)解析詞匯T2

tile [tail] n. 瓦,瓷磚tilt [tilt] v. (使)傾斜n. 傾斜,斜坡timid [?timid] a. 膽怯的,怯懦的tin [tin] n. 錫;罐,聽;罐頭【習(xí)慣用語(yǔ)】①live out of tins [ca

2024-06-10 21:26

人教版八年級(jí)英語(yǔ)下冊(cè)4單元考點(diǎn)丨重點(diǎn)單詞與重點(diǎn)句型?。ò四昙?jí)下冊(cè)英語(yǔ)四單元重點(diǎn)短語(yǔ)和句型)

unit 4 Why don’t you talk to your parents (一)單詞短語(yǔ)辨析allow用法allow sb. to do sth 允許某人做某事allow allow doing sth 允許做某事They don

2024-06-10 21:26

加載中...