男: 你喜歡怎么樣的男人?
女: 我喜歡像后裔那樣的.
- 1:什么是協(xié)同程序罗售?
在主線(xiàn)程運(yùn)行的同時(shí)開(kāi)啟另一段邏輯處理判族,來(lái)協(xié)助當(dāng)前程序的執(zhí)行,協(xié)程很像多線(xiàn)程,但是不是多線(xiàn)程脉漏,Unity的協(xié)程實(shí)在每幀結(jié)束之后去檢測(cè)yield的條件是否滿(mǎn)足苞冯。
- 2:簡(jiǎn)述一下對(duì)象池,你覺(jué)得在FPS里哪些東西適合使用對(duì)象池 ?
對(duì)象池就存放需要被反復(fù)調(diào)用資源的一個(gè)空間侧巨,當(dāng)一個(gè)對(duì)象回大量生成的時(shí)候如果每次都銷(xiāo)毀創(chuàng)建會(huì)很費(fèi)時(shí)間舅锄,通過(guò)對(duì)象池把暫時(shí)不用的對(duì)象放到一個(gè)池中(也就是一個(gè)集合),當(dāng)下次要重新生成這個(gè)對(duì)象的時(shí)候先去池中查找一下是否有可用的對(duì)象司忱,如果有的話(huà)就直接拿出來(lái)使用皇忿,不需要再創(chuàng)建,如果池中沒(méi)有可用的對(duì)象坦仍,才需要重新創(chuàng)建鳍烁,利用空間換時(shí)間來(lái)達(dá)到游戲的高速運(yùn)行效果,在FPS游戲中要常被大量復(fù)制的對(duì)象包括子彈繁扎,敵人幔荒,粒子等
- 3:LOD是什么,優(yōu)缺點(diǎn)是什么梳玫?
LOD(Level of detail)多層次細(xì)節(jié)爹梁,是最常用的游戲優(yōu)化技術(shù)。它按照模型的位置和重要程度決定物體渲染的資源分配提澎,降低非重要物體的面數(shù)和細(xì)節(jié)度姚垃,從而獲得高效率的渲染運(yùn)算。缺點(diǎn)是增加了內(nèi)存盼忌。
- 4: 如何優(yōu)化內(nèi)存积糯?
有很多種方式,例如 1.壓縮自帶類(lèi)庫(kù)谦纱; 2.將暫時(shí)不用的以后還需要使用的物體隱藏起來(lái)而不是直接Destroy掉看成; 3.釋放AssetBundle占用的資源; 4.降低模型的片面數(shù)服协,降低模型的骨骼數(shù)量绍昂,降低貼圖的大小偿荷; 5.使用光照貼圖窘游,使用多層次細(xì)節(jié)(LOD),使用著色器(Shader)跳纳,使用預(yù)設(shè)(Prefab)忍饰。 6.代碼中少產(chǎn)生臨時(shí)變量
- 5: Unity3D的協(xié)程和C#線(xiàn)程之間的區(qū)別是什么?
多線(xiàn)程程序同時(shí)運(yùn)行多個(gè)線(xiàn)程 寺庄,而在任一指定時(shí)刻只有一個(gè)協(xié)程在運(yùn)行艾蓝,并且這個(gè)正在運(yùn)行的協(xié)同程序只在必要時(shí)才被掛起力崇。除主線(xiàn)程之外的線(xiàn)程無(wú)法訪(fǎng)問(wèn)Unity3D的對(duì)象、組件赢织、方法亮靴。 Unity3d沒(méi)有多線(xiàn)程的概念,不過(guò)unity也給我們提供了StartCoroutine(協(xié)同程序)和LoadLevelAsync(異步加載關(guān)卡)后臺(tái)加載場(chǎng)景的方法于置。 StartCoroutine為什么叫協(xié)同程序呢茧吊,所謂協(xié)同,就是當(dāng)你/StartCoroutine的函數(shù)體里處理一段代碼時(shí)八毯,利用yield語(yǔ)句等待執(zhí)行結(jié)果搓侄,這期間不影響主程序的繼續(xù)執(zhí)行,可以協(xié)同工作话速。
- 6 Unity3D是否支持寫(xiě)成多線(xiàn)程程序讶踪?如果支持的話(huà)需要注意什么?
僅能從主線(xiàn)程中訪(fǎng)問(wèn)Unity3D的組件泊交,對(duì)象和Unity3D系統(tǒng)調(diào)用
支持:如果同時(shí)你要處理很多事情或者與Unity的對(duì)象互動(dòng)小可以用thread,否則使用coroutine乳讥。
注意:C#中有l(wèi)ock這個(gè)關(guān)鍵字,以確保只有一個(gè)線(xiàn)程可以在特定時(shí)間內(nèi)訪(fǎng)問(wèn)特定的對(duì)象
- 7: Unity3D Shader分哪幾種,有什么區(qū)別活合?
表面著色器的抽象層次比較高雏婶,它可以輕松地以簡(jiǎn)潔方式實(shí)現(xiàn)復(fù)雜著色。表面著色器可同時(shí)在前向渲染及延遲渲染模式下正常工作白指。
頂點(diǎn)片段著色器可以非常靈活地實(shí)現(xiàn)需要的效果,但是需要編寫(xiě)更多的代碼酵紫,并且很難與Unity的渲染管線(xiàn)完美集成告嘲。
固定功能管線(xiàn)著色器可以作為前兩種著色器的備用選擇,當(dāng)硬件無(wú)法運(yùn)行那些酷炫Shader的時(shí)奖地,還可以通過(guò)固定功能管線(xiàn)著色器來(lái)繪制出一些基本的內(nèi)容橄唬。
- 8: 在編輯場(chǎng)景時(shí)將GameObject設(shè)置為Static有何作用?
設(shè)置游戲?qū)ο鬄镾tatic時(shí)参歹,這些部分被靜態(tài)物體擋住而不可見(jiàn)時(shí)仰楚,將會(huì)剔除(或禁用)網(wǎng)格對(duì)象。因此犬庇,在你的場(chǎng)景中的所有不會(huì)動(dòng)的物體都應(yīng)該標(biāo)記為Static僧界。
- 9: 什么是DrawCall?DrawCall高了又什么影響臭挽?如何降低DrawCall捂襟?
Unity中,每次引擎準(zhǔn)備數(shù)據(jù)并通知GPU的過(guò)程稱(chēng)為一次Draw Call欢峰。DrawCall越高對(duì)顯卡的消耗就越大葬荷。降低DrawCall的方法: 1. Dynamic Batching 2. Static Batching 3. 高級(jí)特性Shader降級(jí)為統(tǒng)一的低級(jí)特性的Shader涨共。
如有雷同,純屬摘抄.請(qǐng)勿介意.