第二部分
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)畫(huà)狀態(tài)機(jī)功能的GameObject都需要一個(gè)Anim組件
C.它主要用于角色行為的設(shè)置,包括StateMachine、混合樹(shù)BlendTrees以及同通過(guò)腳本控制的事件
D.Animator同Animation組件的用法是相同的
5.Application.loadLevel命令為(A)
A.加載關(guān)卡 B.異步加載關(guān)卡C.加載動(dòng)作 D.加載動(dòng)畫(huà)
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是一種資源類(lèi)型 B.Prefab 是一種可以反復(fù)使用的游戲?qū)ο?/p>
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 類(lèi)被啟用后,每幀調(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ī)顯示的畫(huà)面位于1280*720分辨率的屏幕畫(huà)面右上角(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)緩存到本地磁盤(pán)
B.可被用于將Resource 自動(dòng)緩存到本地磁盤(pán)
C.可被用于將Asset Bundles 自動(dòng)緩存到本地磁盤(pán)
D.可被用于將任意格式的Unity資源文件自動(dòng)緩存到本地磁盤(pán)
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腳本:
usingUnityEngine;?
usingSystem.Collections;?
public classMovieTest : MonoBehaviour?
{?
??? //視頻紋理??
??? protected MovieTexture movTexture;
???AudioClip audio;
??? AudioSource AudioSource1;
??? voidStart()?
??? {?
??????? StartCoroutine(DownLoadMovie());??
??? }?
??? voidOnGUI()?
??? {?
??????? if (GUILayout.Button("播放/繼續(xù)"))?
??????? {?
??????? ????//播放/繼續(xù)播放視頻??
??????????? if(!movTexture.isPlaying)?
??????????? {?
??????????????? movTexture.Play();?
??????????????? AudioSource1.Play();
??????????? }?
??????? }?
??????? if (GUILayout.Button("暫停播放"))?
??????? {?
??????????? //暫停播放??
??????????? movTexture.Pause();?
??????????? AudioSource1.Pause();
??????? }?
??????? if (GUILayout.Button("停止播放"))?
??????? {?
??????????? //停止播放??
???????????movTexture.Stop();?
??????????? AudioSource1.Stop();
??????? }?
??? }?
??? IEnumerator DownLoadMovie()?
??? {?
??????? WWW www =new WWW ("http://127.0.0.1/Wildlife.ogg");//"file://" + Application.dataPath +"/Resources/Wildlife.ogg");?
??????? yield returnwww;??
??????? movTexture = www.movie;
??????? //獲取主相機(jī)的聲源
??????? AudioSource1 =Camera.main.GetComponent(typeof(AudioSource)) asAudioSource;
??????? //獲取視頻的聲音設(shè)置到聲源上
??????? AudioSource1.clip =movTexture.audioClip;
???????audio = AudioSource1.clip;
??????? //設(shè)置當(dāng)前對(duì)象的主紋理為電影紋理??
???????renderer.material.mainTexture = movTexture;?
??????? //設(shè)置電影紋理播放模式為循環(huán)
???????movTexture.loop =true;
??? }?
}
17.游戲?qū)ο驜是游戲?qū)ο驛的子物體,游戲?qū)ο驛經(jīng)過(guò)了旋轉(zhuǎn),請(qǐng)寫(xiě)出游戲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)畫(huà);
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ì)象,如果有的話(huà)直接使用這個(gè)對(duì)象,并把它標(biāo)記為正在使用,沒(méi)有話(huà)就創(chuàng)建一個(gè),并把它添加到池中,然后標(biāo)記為使用中。一個(gè)游戲?qū)ο笫褂猛戤叺臅r(shí)候,不要銷(xiāo)毀掉,把它放在池中,標(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)畫(huà)放大 B.動(dòng)畫(huà)轉(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)聽(tīng)的端口,useNat設(shè)置NAT穿透功能。如果你想要這個(gè)服務(wù)器能夠接受連接使用NAT穿透,使用facilitator,設(shè)置這個(gè)為true。如果有錯(cuò)誤會(huì)有返回錯(cuò)誤。
31.請(qǐng)寫(xiě)出以下函數(shù)的含義和運(yùn)算結(jié)果
delegate b Func<a,
b>(a a1);
static void
Main(string[] args)
{
??? Func mFunc = x => x ==5;
??? Console.WriteLine(mFunc(6));
}
false,就是定義一個(gè)delegate,返回值類(lèi)型為 b,有一個(gè)參數(shù),類(lèi)型為a。
32.編寫(xiě)一個(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)寫(xiě)一個(gè)程序輸出所有附加屬性的組合。
#
34.請(qǐng)實(shí)現(xiàn)如下函數(shù),在Unity中有一副骨骼樹(shù),請(qǐng)使用遞歸方式與非遞歸方式實(shí)現(xiàn)先序遍歷,在Unity的Console輸出所有骨骼名。
可能用到的函數(shù)
public Transform
GetChild(int
index);
public int
Transform.childCount
public 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ù)開(kāi)始之前和事務(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層二叉樹(shù)最多有 2^k - 1 個(gè)結(jié)點(diǎn)。
39.中綴算式(8 + x*y)-2x/3的后綴算式是_。
40.對(duì)以下二叉樹(shù)進(jìn)行前序遍歷的結(jié)果是(ABDGCEHF)

41.寫(xiě)出一個(gè)C類(lèi)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)寫(xiě)一個(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ò)程,最好能畫(huà)出時(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)在類(lèi)中的static 成員變量屬于整個(gè)類(lèi)所擁有,對(duì)類(lèi)的所有對(duì)象只有一份拷貝;
(5)在類(lèi)中的static 成員函數(shù)屬于整個(gè)類(lèi)所擁有,這個(gè)函數(shù)不接收this 指針,因而只能訪問(wèn)類(lèi)的static 成員變量。
47.解釋一下Unity3D中的協(xié)程(coroutine)是什么?并舉例說(shuō)明
在主線程運(yùn)行的同時(shí)開(kāi)啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行,協(xié)程很像多線程,但是不是多線程,Unity的協(xié)程實(shí)在每幀結(jié)束之后去檢測(cè)yield的條件是否滿(mǎn)足。
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ī)。寫(xiě)出實(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)方法,并編程寫(xiě)出如何實(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的腳本類(lèi)),請(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銷(xiāo)毀對(duì)象的時(shí)候,會(huì)立即釋放資源。Destroy只是從該場(chǎng)景銷(xiāo)毀,但是還在內(nèi)存當(dāng)中。
55.詳細(xì)說(shuō)明Unity中資源加載的方法,以及他們的區(qū)別?
1.通過(guò)Resources模塊,調(diào)用它的load函數(shù):可以直接load并返回某個(gè)類(lèi)型的Object,前提是要把這個(gè)資源放在Resource命名的文件夾下,Unity不關(guān)有沒(méi)有場(chǎng)景引用,都會(huì)將其全部打入到安裝包中。
2.通過(guò)bundle的形式:即將資源打成asset bundle 放在服務(wù)器或本地磁盤(pán),然后使用WWW模塊get 下來(lái),然后從這個(gè)bundle中l(wèi)oad某個(gè)object。
56.從代碼角度上如何進(jìn)行內(nèi)存優(yōu)化?
#
57.分別寫(xiě)出Invoke和協(xié)程的幾種用法?
#
58.以下函數(shù)的功能是計(jì)算斐波那契數(shù)列的第n項(xiàng),請(qǐng)?zhí)羁?/p>
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.類(lèi)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)在類(lèi)中的static 成員變量屬于整個(gè)類(lèi)所擁有,對(duì)類(lèi)的所有對(duì)象只有一份拷貝;
(5)在類(lèi)中的static 成員函數(shù)屬于整個(gè)類(lèi)所擁有,這個(gè)函數(shù)不接收this 指針,因而只能訪問(wèn)類(lèi)的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ì)于類(lèi)的成員函數(shù),若指定其為const 類(lèi)型,則表明其是一個(gè)常函數(shù),不能修改類(lèi)的成員變量
??? ;
(5)對(duì)于類(lèi)的成員函數(shù),有時(shí)候必須指定其返回值為const 類(lèi)型,以使得其返回值不為“左值”。
65.用你熟悉的語(yǔ)言及你認(rèn)為最簡(jiǎn)潔的方法書(shū)寫(xiě)計(jì)算 s = 1!+2!+3!+…+num!的代碼。num為輸入,s為輸出。(!代表階乘 3!= 1 * 2 * 3
Console.ReadLine(num)
int s = 0;
for(int i = 1; i
<= num; i++)
{
??? s += JieCheng(num);
}
public int
JieCheng(int num)
{
??? if(num < 0)
??? {
??????? Console.WriteLine("error");
??????? return;
??? }
??? if(num <=1)
??? {
??????? return 1;
??? }
??? else {
??????? return num * JieCheng(num - 1)
??? }
}
66.用你熟悉的語(yǔ)言從一個(gè)字符串中去掉相連的重復(fù)字符,例如原字符串“adffjkljaalkjhl”變?yōu)椤癮dfjkljalkjhl”
int GetResult(char[]input, char[] output)?
{?
??? int i, j, k = 0;?
??? int flag;?
??? int length;?
??? if(input == NULL || output == NULL)?
??? {?
??????? return -1;?
??? }?
??? length=strlen(input);//求數(shù)組的長(zhǎng)度?
??? for(i = 0; i
??? {?
??????? flag = 1;?
??????? for(j = 0; j < i; j++)?
??????? {?
??????????? if(output[j] == input [i])?
??????????? flag = 0;?
??????? }?
??????? if(flag)?
??????? output[k++] = input[i];?
??? }?
??? printf("最終的字符串為:");?
??? output[k] = '\0';?
??? for(int m = 0; m < output.Length; m++)
??? {
??????? print (output [m]);
??? }
??? return 0;?
}?
第三部分
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.下面哪種做法可以打開(kāi)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)畫(huà)
B.指定身體的某一部分是否參與物理模擬
C.指定身體的某一部分是否可以輸出骨骼信息
D.指定身體的某一部分是否參與渲染
12.以下哪種操作步驟可以打開(kāi)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