這是第424篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
本期目錄:
- 如何讓GameObject銷毀時無論是否Active過,都調用OnDestroy
- 升級到URP畫面會提升嗎
- 如何用Dynamic Mesh做出在墻上打洞的效果
- UE可以把烘焙好的光照貼圖導出嗎
Asset
Q:請教一個問題,MonoBehaviour的OnDestroy方法,如果這個GameObject的實例化時就是隱藏的,銷毀時不會調用OnDestroy方法。我們項目有些核心邏輯是基于這個OnDestroy做的(時間太久遠,耦合太多邏輯不好改出去了)。有沒有什么辦法,可以讓這個GameObject銷毀時無論是否Active過,都調用OnDestroy。
A:要觸發OnDestroy,必須要觸發過Awake(Awake可以不明著寫出來),通常是被實例化或者第一次激活的時候觸發Awake,如果一直處于不激活的狀態,那么銷毀的時候不會自動觸發OnDestroy。所以可以在激活的父節點上主動SetActive一下:
感謝旋@UWA問答社區提供了回答
A2:1. 一般一個Prefab本身是點亮的,大部分是里面的某些節點才會隱藏。如果是我說的這種情況,應該是在根Prefab摧毀的時候主動調用一次需要控制調用的子組件。
2. 如果你真的是根Prefab就隱藏的那更簡單了:
(1)做一個工具掃描所有Prefab檢查并且修改點亮情況;
(2)編輯器模式下加載完一個Prefab之后檢查是否點亮,如果沒有則打印Error。
感謝沈杰@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/67d390183d306f3e9d594e7a
Rendering
Q1:請問升級到URP之后,畫面會提升嗎?
A:感覺畫面提不提升取決于美術和TA的配合。URP目前做不到你想要一下子就提升畫面的需求。
感謝[]@UWA問答社區提供了回答
Q2:那有沒有測過同樣的場景Build-in和URP哪個性能更好一些呢?
A1:URP,但是URP的Lit比BRP的Standard質量更低點,畢竟是給手機跑的,BxDF估計都是簡化到不能再簡化的。
感謝高0x@UWA問答社區提供了回答
A2:升級到URP本身不會自動提升畫質;和Build-in性能哪個好,也是不一定的,有見過用了URP,性能反而下降的情況。應該說URP肯定有其優勢,但要用的好才有提升:URP最重要的是可以根據項目需要定制管線;有SRP Batcher,可以讓以前一些不能合批的東西可以合批了,比如SkinnedMesh;內置了后處理等等。
該回答由UWA提供,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/67d78ed53d306f3e9d594e7d
Rendering
Q:請教個問題。我想用Dynamic Mesh做在墻上打洞的效果(類似炮彈炸樓)。目前用Static Mesh轉Dynamic Mesh做了Bool以后再轉回Static Mesh。不過有個問題是這種Static Mesh缺少Luman Card,造成光照效果挺差的。現在我想把Static Mesh存成Assert再讀回來異步Load Assert回來,Spawn Actor。不知道這個方法能不能解決缺Luman Card的問題。
事實上,我最擔心的是直接存AssetCreated(NewMesh);和Cast (StaticLoadObject(UMaterial::StaticClass(), nullptr, TEXT("/Game/Map/Materials/NewMesh")))這種方法就不能解決Luman Card的問題。因為這個過程中我沒有做過Cook的事情。
我不太清楚Cook具體干了什么?比如說,是否是算了SDF?缺少SDF是不是就不能做全局光追了?
官方已經公開承認的是Dynamic Mesh轉Static Mesh的時候就不會生成Static Mesh的Luman Card,而且直接調Copy to Static Mesh肯定不夠的。
針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/67cfada63d306f3e9d594e70
Rendering
Q:請問UE可以把烘焙好的光照貼圖導出嗎?
A1:聽說有這么做的,好像是寫了工具才能導,本身不能。
感謝戰斗@UWA問答社區提供了回答
A2:你要是一行代碼都不想寫,可以用舊版本引擎,glTF導出插件,有導出Lightmap的選項,但中間不知道為什么EPIC刪掉了這個選項。你要想寫可以翻一翻,MeshComponent下有個MeshMapBuildData,Lightmap就存在那里。
感謝...@UWA問答社區提供了回答,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/67d239d73d306f3e9d594e75
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,UWA社區愿伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。
UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
點擊下方名片關注我們,將我設為星標,及時接收小編每日推送哦,性能優化不迷路~
近期精彩回顧
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.