999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Unity3D項目腳本優(yōu)化分析與研究

2017-03-08 03:12:21宋傳磊劉俊婷張光亮侯世中
中國新通信 2017年1期
關(guān)鍵詞:優(yōu)化

宋傳磊+劉俊婷+張光亮+侯世中

【摘要】 本文就U3D項目中腳本優(yōu)化進(jìn)行分析研究。分別從常規(guī)優(yōu)化、使用靜態(tài)類型、使用#pragma strict指令、緩存組件查詢、使用內(nèi)建數(shù)組和盡量減少函數(shù)調(diào)用等六個方面,通過實例提出了具體的優(yōu)化方案,優(yōu)化方案的使用在很大程度上提高了項目腳本性能。

【關(guān)鍵詞】 U3D 優(yōu)化 數(shù)組 函數(shù)調(diào)用

一個U3D項目能夠很好的運行,較完美的展現(xiàn)項目細(xì)節(jié)內(nèi)容,項目的性能優(yōu)化將起到核心的作用。項目的性能優(yōu)化涉及的范圍很廣,是一項紛繁復(fù)雜的過程。伴隨著軟硬件性能的提升,如何對項目進(jìn)行優(yōu)化進(jìn)而展現(xiàn)更多細(xì)節(jié),已經(jīng)成為開發(fā)者急需思考的問題。本文將針對JavaScript和C#腳本文件,從常規(guī)優(yōu)化、使用靜態(tài)類型、使用#pragma strict、緩存組件查詢、使用內(nèi)建數(shù)組以及盡量少調(diào)用函數(shù)等6個方面進(jìn)行闡述[1]。

一、常規(guī)優(yōu)化

1、數(shù)組大小在循環(huán)結(jié)構(gòu)中的應(yīng)用。很多程序設(shè)計語言,包括JS腳本語言,對于數(shù)組的大小(長度)可以通過length屬性獲取。如果將數(shù)組的大小作為循環(huán)控制條件,應(yīng)該提前將數(shù)組的大小取得并賦給一個中間變量,在循環(huán)控制條件中使用該中間變量。這種優(yōu)化方式對數(shù)組的大小只進(jìn)行一次求值,很大程度上減少了處理機(jī)重復(fù)計算數(shù)組大小的次數(shù)。2、Update和OnGUI優(yōu)化。在JS和C#腳本中Update和OnGUI函數(shù)體每幀都要執(zhí)行一次,針對不同的具體項目,如果連續(xù)幾幀時間片代碼的執(zhí)行不會產(chǎn)生新的對象變化,可以估算幀時間片的大小,使用Time對象的frameCount屬性來跳躍時間片執(zhí)行循環(huán)體[2]。3、使用InvokeRepeating函數(shù)實現(xiàn)定時。在JS和C#腳本中雖然Start函數(shù)在程序的執(zhí)行過程中只執(zhí)行一次,但是可以使用InvokeRepeating函數(shù)實現(xiàn)定時調(diào)用用戶自定函數(shù)。這樣避免了使用Update函數(shù)重復(fù)執(zhí)行。

二、深度優(yōu)化

1、使用靜態(tài)類型。在Unity中采用邏輯推理技術(shù)自動完成JavaScript動態(tài)腳本到靜態(tài)腳本的轉(zhuǎn)換,無需程序員做任何設(shè)置。因此,在編寫JavaScript時,使用靜態(tài)類型代替動態(tài)類型是既方便又有效的優(yōu)化措施。

例如: var a=1;在定義變量a的同時用數(shù)值1完成了初始化。在編譯時,Unity會自動把變量a分析為整形,無需使用動態(tài)名稱查找,這樣就節(jié)省了處理機(jī)的時間。

2、使用#pragma strict指令。在Unity腳本文件的開始處經(jīng)常可以看到 #pragma strict指令。此指令使編譯器處于“嚴(yán)謹(jǐn)編譯模式”,強(qiáng)制使用靜態(tài)類型,要求在聲明變量時,需要明確待聲明的變量是屬于什么類型,不允許讓編譯器自己來分析變量的類型,因此不能隨便的使用一個標(biāo)識符讓編譯器來為其實例化。如在使用此指令后,在腳本中有如下語句 。var a; 此語句在編譯時會提示錯誤。因為強(qiáng)制使用靜態(tài)類型,變量“a”的類型未知,Unity將報告編譯錯誤。可以將語句做如下修改。 var a: int; 通過使用#pragma strict,可以強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。

3、緩存組件查詢。如果編寫的代碼體積很大,需要盡可能的做到性能優(yōu)化,可以采用緩存組件查詢的優(yōu)化方式。當(dāng)通過GetComponent()方法獲取一個組件時,Unity必須從“Hierarchy或Project”視圖中找到相應(yīng)的組件。此時可以通過定義一個緩存組件來引用到一個變量,使得Unity不會再每一幀都去尋找組件,此方法能夠提高代碼運行速度。

4、使用內(nèi)建數(shù)組。雖然ArrayList或Array類很方便使用,能輕易添加元件。但是相比內(nèi)建數(shù)組,速度有很大的差異,內(nèi)建數(shù)組速度非常快。內(nèi)建數(shù)組有固定長度,通常情況下能夠預(yù)估其長度然后填充它。內(nèi)建數(shù)組直接嵌入struct數(shù)據(jù)類型在第一個緩存里,不需要任何額外類型信息或其他資源。因此,能夠非常方便的在緩存中實現(xiàn)遍歷[3]。

5、盡量減少函數(shù)調(diào)用。最簡單最有效的優(yōu)化就是執(zhí)行最少的動作。Unity中Update()方法每一幀都會執(zhí)行,所以減少Update()方法里面的工作量,可以實現(xiàn)性能優(yōu)化。例如,當(dāng)一個敵人在遠(yuǎn)處時100米外,讓他處于睡眠狀態(tài),直到玩家靠近,再喚醒。當(dāng)然這并不是很好的方法,更好更有效的方法是禁用該行為直到玩家靠近。使用 OnBecameVisible和OnBecameInvisible方法可以實現(xiàn)。當(dāng)物體在攝像機(jī)視野內(nèi),OnBecameVisible 將被調(diào)用,在視野范圍外時,OnBecameInvisible被調(diào)用。

function OnBecameVisible () {

enabled = true;}

三、結(jié)束語

一般意義上,對于U3D項目可以通過修改模型、減少紋理尺寸、優(yōu)化粒子、優(yōu)化渲染、優(yōu)化資源并結(jié)合Unity 3D的相關(guān)特性來提高性能。但作為編碼人員,本文分析的優(yōu)化方案,可以從代碼優(yōu)化的角度實現(xiàn)項目性能的高效優(yōu)化。

參 考 文 獻(xiàn)

[1]宣雨松.Unity 3D游戲開發(fā).北京:人民郵電出版社2013:115-124

[2]吳亞峰等. Unity 3D游戲開發(fā)技術(shù)詳解與典型案例. 北京:人民郵電出版社2014:83-92

[3]U3D性能優(yōu)化總結(jié).[2016-10-6]. http://www.cnblogs.com/yangyisen/p/5108322.html

猜你喜歡
優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
PEMFC流道的多目標(biāo)優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設(shè)計優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
事業(yè)單位中固定資產(chǎn)會計處理的優(yōu)化
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見的負(fù)載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 久久久久久高潮白浆| 黄色网址手机国内免费在线观看| 亚洲无码精彩视频在线观看| 免费a级毛片18以上观看精品| 欧美视频在线不卡| 国产精品露脸视频| 国产在线自乱拍播放| 亚洲国产成人久久精品软件 | 国产精品无码翘臀在线看纯欲| 三级视频中文字幕| 日本在线视频免费| 亚洲综合极品香蕉久久网| 欧美精品1区| 日本成人在线不卡视频| 国产日韩丝袜一二三区| 尤物精品国产福利网站| 日韩欧美网址| 国产自产视频一区二区三区| 乱色熟女综合一区二区| 2024av在线无码中文最新| 国产精品女熟高潮视频| 国产女主播一区| a毛片在线播放| 国产麻豆精品在线观看| 欧美成人综合视频| 色成人亚洲| 97无码免费人妻超级碰碰碰| 成人一级黄色毛片| 粗大猛烈进出高潮视频无码| 欧美不卡二区| 久久国产亚洲偷自| 中文字幕在线视频免费| 国产在线无码一区二区三区| 免费不卡在线观看av| 九九热这里只有国产精品| 欧美日韩国产在线播放| 波多野结衣国产精品| 久久香蕉国产线看观| 99草精品视频| 国产欧美中文字幕| 秘书高跟黑色丝袜国产91在线| 精品无码一区二区三区在线视频| 特级做a爰片毛片免费69| 欧美一级视频免费| 丝袜美女被出水视频一区| 在线精品欧美日韩| 免费人成在线观看成人片| 午夜天堂视频| 奇米影视狠狠精品7777| 久久久久88色偷偷| 国产精品免费入口视频| 在线观看国产精品日本不卡网| 国产亚洲精品91| 国产色偷丝袜婷婷无码麻豆制服| 国产精品网曝门免费视频| 午夜精品久久久久久久99热下载 | 夜精品a一区二区三区| 国产91九色在线播放| 欧美激情视频在线观看一区| AV老司机AV天堂| 欧美精品啪啪一区二区三区| 国产午夜福利在线小视频| 国产99视频精品免费观看9e| 午夜福利免费视频| 国产真实乱子伦精品视手机观看 | 亚洲成人www| 国产青青草视频| 操美女免费网站| 97精品国产高清久久久久蜜芽| 国产尤物在线播放| 91九色最新地址| 69av在线| AV色爱天堂网| 亚洲色无码专线精品观看| 欧美黄网站免费观看| 久久精品66| 亚洲天堂视频在线观看免费| 国产成人亚洲欧美激情| 欧美成人亚洲综合精品欧美激情| 一级在线毛片| 91视频区| av一区二区三区高清久久|