3D鏈遊開發功能,3D鏈遊系統開發技術分析及原始碼
Unity3D程式碼及效率最佳化總結
1、在使用陣列或ArrayList物件時應當注意
length=myArray.Length;
for(inti=0;i
{
}
避免
for(inti=0;i
{
}
2、如果沒有必要每幀都處理,則可以每隔幾幀處理一次
voidUpdate(){if(Time.frameCount%6==0){DoSomething();}}
3、定時重複呼叫可以使用InvokeRepeating函式實現,比如,啟動0.5秒後每隔1秒執行一次DoSomeThing函式:
voidStart()
{
InvokeRepeating("DoSomeThing",0.5f,1.0f);
}
4、少使用臨時變數,特別是在Update OnGUI等實時呼叫的函式中。
voidUpdate()
{
Vector3 pos;
pos=transform.position;
}
可以改為:
privateVector3 pos;
voidUpdate()
{
pos=transform.position;
}
5、主動進行垃圾回收
voidUpdate()
{
if(Time.frameCount%50==0)
{
System.GC.Collection();
}
}
6、最佳化數學運算,儘量避免使用float,而使用int,特別是在手機遊戲中,儘量少用複雜的數學函式,比如sin,cos等函式。改除法/為乘法,例如:使用x*0.5f而不是x/2.0f。
7、壓縮Mesh
匯入3D模型之後,在不影響顯示效果的前提下,最好開啟Mesh Compression。Off,Low,Medium,High這幾個選項,可酌情選取。對於單個Mesh最好使用一個材質。
8、執行時儘量減少Tris和Draw Calls
預覽的時候,可點開Stats,檢視圖形渲染的開銷情況。特別注意Tris和Draw Calls這兩個引數。一般來說,要做到:Tris保持在7.5k以下,Draw Calls保持在35以下。
9、避免大量使用Unity自帶的Sphere等內建Mesh
Unity內建的Mesh,多邊形的數量比較大,如果物體不要求特別圓滑,可匯入其他的簡單3D模型代替。
10、如果可能,將GameObject上不必要的指令碼disable掉。如果你有一個大的場景在你的遊戲中,並且敵方的位置在數千米意外,這是你可以
disable你的敵方AI指令碼直到它們接近攝像機為止。一個好的途徑來開啟或關閉GameObject是使用
SetActiveRecursively(false),並且球形或盒型碰撞器設為trigger。
11、刪除空的Update方法。當透過Assets目錄建立新的指令碼時,指令碼里會包括一個Update方法,當你不使用時刪除它。
12、引用一個遊戲物件的最合乎邏輯的元件。有人可能會這樣寫someGameObject.transform,gameObject.rigidbody.transform.gameObject.rigidbody.transform,但是這樣做了一些不必要的工作,你可以在最開始的地方引用它,像這樣:
privateTransform myTrans;
void Start()
{
myTrans=transform;
}
13、協同是一個好方法。可以使用協同程式來代替不必每幀都執行的方法。(還有InvokeRepeating方法也是一個好的取代Update的方法)。
14、儘可能不要再Update或FixedUpdate中使用搜尋方法(例如GameObject.Find()),你可以像前面那樣在Start方法裡獲得它。
15、不要使用SendMessage之類的方法,他比直接呼叫方法慢了100倍,你可以直接呼叫或透過C#的委託來實現。
16、使用JavaScript或Boo語言時,你最好確定變數的型別,不要使用動態型別,這樣會降低效率,你可以在指令碼開頭使用#pragmastrict來檢查,這樣當你編譯你的遊戲時就不會出現莫名其妙的錯誤了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69993319/viewspace-2897597/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 3D元宇宙鏈遊開發說明 鏈遊系統開發技術方案 3D鏈遊原始碼模式3D元宇宙原始碼模式
- 3D鏈遊系統開發(功能詳情)丨3D鏈遊系統開發(流程原始碼)3D原始碼
- 3D遊戲鏈遊系統開發(原始碼)3D遊戲原始碼
- 鏈遊系統開發流程 元宇宙3D鏈遊系統開發(開發邏輯) 元宇宙3D鏈遊開發成品原始碼元宇宙3D原始碼
- 3D丨2D鏈遊系統開發實現技術方案及原始碼3D原始碼
- 鏈遊開發功能版/NFT鏈遊系統開發運營版/區塊鏈遊戲系統開發/成熟技術/原始碼案例區塊鏈遊戲原始碼
- 元宇宙3D鏈遊系統開發(說明分析),3D鏈遊系統開發(規則設計)元宇宙3D
- 區塊鏈遊戲系統開發(Gamefi鏈遊開發案例)丨Gamefi鏈遊系統開發詳細及原始碼區塊鏈遊戲GAM原始碼
- 元宇宙鏈遊系統開發原始碼(成熟技術)元宇宙原始碼
- stepn跑鞋鏈遊系統開發技術說明及案例原始碼原始碼
- NFT遊戲鏈遊系統開發技術詳細丨NFT遊戲鏈遊DAPP開發原始碼模式遊戲APP原始碼模式
- 鏈遊模式系統開發搭建功能丨鏈遊系統開發專案方案(技術成熟)模式
- GameFi/NFT鏈遊遊戲系統技術開發/GameFi鏈遊開發/NFTGAM遊戲
- NFT鏈遊/Stepn跑鞋鏈遊系統開發技術/Stepn跑鞋原始碼/Defi/NFT原始碼
- 智慧合約鏈遊開發詳情丨智慧合約鏈遊系統開發(開發方案)及原始碼分析原始碼
- NFT鏈遊鬥羅世界系統開發技術(功能分析)
- Gamefi鏈遊系統開發(DAPP遊戲開發)丨Gamefi鏈遊系統開發(開發案例)丨原始碼GAMAPP遊戲開發原始碼
- islandswap鏈遊系統開發技術原理丨islandswap鏈遊系統開發詳解
- java底層鏈遊系統開發技術功能(成熟技術)Java
- islandswap鏈遊系統開發(開發說明)丨islandswap鏈遊遊戲系統開發功能遊戲
- NFT鏈遊系統開發流程原始碼部署方案(成熟技術)原始碼
- Demole NFT3D鏈遊系統開發模式(3D遊戲開發)3D模式遊戲開發
- NFT區塊鏈遊戲系統開發技術方案丨NFT區塊鏈遊戲系統開發原始碼詳解區塊鏈遊戲原始碼
- GameFi鏈遊系統技術開發/NFT遊戲元宇宙系統開發詳情分析GAM遊戲元宇宙
- Dapp/Stepn跑鞋鏈遊系統開發詳細技術案例/成熟方案/原始碼功能APP原始碼
- NFT/GameFi鏈遊元宇宙系統NFT遊戲開發功能技術GAM元宇宙遊戲開發
- GameFi+NFT鏈遊開發技術/NFT鏈遊遊戲系統程式設計開發程式碼示例GAM遊戲程式設計
- NFT鏈遊功能開發丨DAPP智慧合約遊戲系統技術開發模式APP遊戲模式
- NFT鏈遊系統開發丨NFT元宇宙遊戲功能開發技術詳情元宇宙遊戲
- Stepn跑鞋跑步鏈遊開發穩定版,Dapp/Stepn跑鞋系統開發(玩法規則)及原始碼技術分析APP原始碼
- NFT鏈遊系統技術開發/NFT元宇宙鏈遊開發/Defi/應用/DAPP元宇宙APP
- NFT鏈遊開發系統DAPP技術落地APP
- MetaX星球開發系統NFT鏈遊技術
- NFT元宇宙鏈遊/鏈遊系統技術開發/應用/DAPP元宇宙APP
- NFT鏈遊(GameFi鏈遊)遊戲系統合約開發技術分析丨GameFi丨NFTGAM遊戲
- The Beacon鏈遊NFT遊戲開發系統搭建技術遊戲開發
- Stepn跑鞋跑步運動系統開發/鏈遊開發/玩法規則/技術方案/原始碼原始碼
- 卡牌鏈遊NFT遊戲系統開發/原始碼/卡牌鏈遊/NFT遊戲原始碼