1)如何知道遊戲中不同型號GPU帶寬的瓶頸
2)Unity如何避免文字單字成行
3)如何檢測部分安卓機型是否支持GPU Instance
4)如何篩選重複動畫
這是第344篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
UWA QQ羣:465082844
Performance
Q:遊戲中的帶寬可以用各種工具獲取,但如何知道不同型號GPU的帶寬瓶頸是多少呢?
當帶寬到達多少時,會出現發熱和降頻的情況?這個可以通過計算得出嗎?還是隻能是一個經驗數值?
A:CPU、 GPU或Bandwidth等都可能發熱。<br/>
優化這些就只能是預留幀率,比如預留35%的性能,供散熱Idle。比方説,目標幀率為30,那你可能至少要能渲染到40幀,這樣差不多能保證30幀的效果。
感謝makebalance@foxmail.com@UWA問答社區提供了回答
Script
Q:請問在Unity中,如何避免文字單字成行?在手遊審核中,不能單字成行。
比如下面這個:
“文字換
行。”
這個“行”,是不允許出現的。請問有什麼可行方案嗎?
A1:寫個小工具,全局掃描遊戲內文本,根據換行符分割,然後去掉標點符號,一個字的把來源和內容都篩出來,導一份日誌提單給策劃。審核需要那就必須改了。
感謝你相信光嗎@UWA問答社區提供了回答
A2:或者從源頭上調整,直接讓策劃控制字數。
感謝NG週@UWA問答社區提供了回答
Platform
Q:我遊戲內部分資源使用了插件GPU Instancer(對GPU Instance的封裝、剔除部分用的ComputerShader)。
在大部分手機上效果都是Ok的,但是有一些玩家反應説,他們的設備上顯示不出來。
我就特意加了Log,並用SystemInfo.supportsInstancing做了一下判斷,發現返回結果是True,輸出的是:
SystemInfo.graphicsDeviceName = Adreno(TM) 650
SystemInfo.graphicsDeviceType = Vulkan
並且我問了一下,其中一個玩家的設備用的是聯想Y700,還有一個是一加的9R,這些都是符合GPU Instance要求的。安卓版本也足夠高,一個是11,一個是13。
理論上只要是滿足ES3.1的機型都應該支持,主要是我現在不知道用什麼判斷當前機型是否支持,且“SystemInfo.supportsInstancing”這個判斷不出來。
請問有同學有相關的經驗麼? 就是為什麼有些設備無法使用GPU Instance?或者用什麼辦法可以判斷出來這些呢?
A:也有可能是機型不支持Compute Shader。可以分別做Demo,找一些雲真機測試一下。
感謝makebalance@foxmail.com@UWA問答社區提供了回答
Resource
Q:現有重複動畫篩選的需求背景,即clipA和clipB重複,美術當時做了一份然後拷貝複製重命名了,怎麼把這兩個識別出來?
我的想法:反序列化解析通過Curve的Keyframe信息對比,但是有些動畫有好幾MB,數據信息量多,請問有更好的辦法麼?
A:建議使用MD5對比。
感謝野生西瓜@UWA問答社區提供了回答
封面圖來源於網絡
今天的分享就到這裏。生有涯而知無涯,在漫漫的開發週期中,我們遇到的問題只是冰山一角,UWA社區願伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。
UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ羣:465082844