1)設置Application.targetFrameRate沒有起作用的原因
2)Unity如何監聽程序退出,包括被後台kill
3)降低Mesh LOD是否會降低片元函數的執行次數
4)TMP SubMeshUI出現的原因
這是第304篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閲讀時間10分鐘,認真讀完必有收穫。
UWA 問答社區:answer.uwa4d.com
UWA QQ羣2:793972859(原羣已滿員)
Performance
Q:在代碼裏設置了Application.targetFrameRate並沒有起作用,請問是什麼原因?
A1:題主可以檢查一下引擎設置中VSync設置是否開啓。如下圖,可以調成Don't Sync再試試。
經測試,VSync關閉時,Application.targetFrameRate的鎖幀效果正常生效;VSync開啓時,實際幀率總是會達到設備支持的最大幀率,從而使Application.targetFrameRate的鎖幀失效。
舉例而言,在小米10上進行測試,開啓VSync後,儘管在代碼中設置Application.targetFrameRate=60,但實際幀率會達到90,從而使得項目的GPU壓力高於預期。
感謝Faust@UWA問答社區提供了回答
A2:移動平台會跟手機有關,不會超過最大的刷新率。看下官方文檔:
https://docs.unity.cn/cn/2021...
感謝zerolj@UWA問答社區提供了回答
Android
Q:如果實現了MonoBehaviour.OnApplicationQuit這個方法,在PC或者編輯器下用可以監聽到,但是我發現,發佈Android時這個函數不會被監聽到。
使用Application.Quit方法退出可以監聽到,但是如果直接被後台殺死,那麼就無法監聽到。
想請問有沒有別的方法,能在各種情況下(強制退出或後台kill等)監聽到程序退出?
A:將項目導出成Android項目,此時導出的項目目錄unityLibrary\src\main\java\com\unity3d\player下有一份UnityPlayerActivity.Java文件,裏面的代碼是在控制UnityPlayer的生命週期。
Android生命週期:
根據以上週期,遊戲正常退出會調用Quit,系統殺進程則不會觸發Quit。
所以可能建議考慮一些別的辦法。比如onSaveInstanceState()和onRestoreInstanceState()這兩個事件,以及通過編寫Servise輔助檢測Uniy項目的活動狀態。
如果你想編寫安卓直接交互Unity的代碼,也可以像這樣寫:
mUnityPlayer.UnitySendMessage(“receiveObj”, “UnityMethod”, “This is args.”);
感謝Isle@UWA問答社區提供了回答
Rendering
Q:鏡頭固定,如果模型使用Mesh LOD請問除了降低頂點函數執行次數,還會降低片元函數次數?
或者影響片元函數的執行次數跟哪些因素有關?
A1:那就只能降屏幕分辨率或者進行深度剔除,AlphaTest等提前剔除的手段。
感謝歐月鬆@UWA問答社區提供了回答
A2:補充樓上,主要是看Primitive光柵化之後的佔屏幕像素數量(這個受到渲染分辨率的影響)。當然還要考慮隱藏面消除,Early-Z等避免Fragment計算的因素。
感謝Xuan@UWA問答社區提供了回答
TextMeshPro
Q:現在在使用Unity 2019.4.34f1版本和TextMeshPro 2.1.6版本開發功能,在項目中有兩個字體,Font_Main和Font_Main_Fallback。
假如在Font_Main設置了Fallback Font Assets,創建的TextMeshPro文本組件下會有一個子節點TMP SubMeshUI [Font_Test_1 Material + KaiTiJianCu Atlas],而且還無法刪除,刪除後會再次自動出現;假如不設置Fallback Font Assets,那麼就可以把子節點TMP SubMeshUI [Font_Test_1 Material + KaiTiJianCu Atlas]刪除,請問這個有什麼作用?會對性能有影響嗎?
A:如果主字體中沒有對應的Unicode的文字時,就會使用Fallback的字體顯示。
感謝蕭小俊@UWA問答社區提供了回答
封面圖來源於網絡
今天的分享就到這裏。當然,生有涯而知無涯。在漫漫的開發週期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網站上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官網:www.uwa4d.com
官方技術博客:blog.uwa4d.com
官方問答社區:answer.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ羣:793972859(原羣已滿員)