最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Unity開發(fā)】性能優(yōu)化——記錄一個關(guān)于材質(zhì)(Material)設(shè)置的坑

2023-02-15 13:23 作者:謎の果皮  | 我要投稿

原理解析

之前一直發(fā)現(xiàn)set pass(draw call)非常高,batches完全沒有辦法合并,后來才知道原來是材質(zhì)變成了Instance,雖然我是經(jīng)過自己的猜測得出只要訪問了Renderer.material,就會克?。↖nstantiate)一個材質(zhì)并返回。還寫了代碼去驗證,后來我才發(fā)現(xiàn)我是傻了,直接看文檔不就行了,于是去看穩(wěn)定,文檔里面就寫明白了。雖然我覺得這樣設(shè)計挺蛋疼的,我覺得應(yīng)該返回null,如果用戶想訪問sharedMaterial,自己去訪問就好了,這種設(shè)計很容易讓人踩坑。而且如果我要自己控制材質(zhì),也會自己克隆一個。不過這也是雙刃劍吧,對于小白來說,也是自動的才是最好的,而且大部分時候不會成為性能瓶頸。

性能優(yōu)化

明白了原理實際上就很好操作了,比如敵人被攻擊后變色或閃爍,通常是靠設(shè)置材質(zhì)的shader屬性完成的,那么最好就是創(chuàng)建一個設(shè)置好的效果,然后去設(shè)置給renderer。

最早的版本是直接spriteRenderer.material.SetFloat("_FlashAmount", _FlashAmount);這樣在對象不多的時候其實完全沒問題,很簡單。但是對象多的時候或者同事大量操作的時候有可能會產(chǎn)生卡頓。

另外需要注意的是,當(dāng)你設(shè)置了材質(zhì)material之后,共享材質(zhì)sharedMaterial也會跟著改變,所以要在一開始進行獲取

寫在最后

實際上本次是一次失敗的優(yōu)化,因為最終我發(fā)現(xiàn)我自己的框架性能的瓶頸不在這里,而是物理引擎,本次變成了一次失敗的優(yōu)化。所以優(yōu)化性能的時候,首先去看看性能瓶頸在哪里,否則浪費了很多時間,實際上在做無用功!


【Unity開發(fā)】性能優(yōu)化——記錄一個關(guān)于材質(zhì)(Material)設(shè)置的坑的評論 (共 條)

分享到微博請遵守國家法律
遂平县| 荔浦县| 易门县| 长岛县| 贡嘎县| 外汇| 鄯善县| 镇平县| 德江县| 体育| 芜湖市| 顺义区| 汕尾市| 合阳县| 乌审旗| 德惠市| 交口县| 三明市| 沂水县| 马鞍山市| 莱芜市| 宁乡县| 开原市| 天津市| 巫山县| 巴楚县| 凤翔县| 集贤县| 乌拉特中旗| 射洪县| 福海县| 隆德县| 连城县| 玛纳斯县| 合作市| 黄浦区| 丹东市| 呈贡县| 高碑店市| 大同县| 商都县|