1)如何让GameObject销毁时无论是否Active过,都调用OnDestroy
2)升级到URP画面会提升吗
3)如何用Dynamic Mesh做出在墙上打洞的效果
4)UE可以把烘焙好的光照贴图导出吗
这是第424篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
UWA社区主页:community.uwa4d.com
UWA QQ群:793972859
Asset
Q:请教一个问题,MonoBehaviour的OnDestroy方法,如果这个GameObject的实例化时就是隐藏的,销毁时不会调用OnDestroy方法。我们项目有些核心逻辑是基于这个OnDestroy做的(时间太久远,耦合太多逻辑不好改出去了)。有没有什么办法,可以让这个GameObject销毁时无论是否Active过,都调用OnDestroy。
A:要触发OnDestroy,必须要触发过Awake(Awake可以不明着写出来),通常是被实例化或者第一次激活的时候触发Awake,如果一直处于不激活的状态,那么销毁的时候不会自动触发OnDestroy。所以可以在激活的父节点上主动SetActive一下:
感谢旋@UWA问答社区提供了回答
A2:1. 一般一个Prefab本身是点亮的,大部分是里面的某些节点才会隐藏。如果是我说的这种情况,应该是在根Prefab摧毁的时候主动调用一次需要控制调用的子组件。
- 如果你真的是根Prefab就隐藏的那更简单了:
(1)做一个工具扫描所有Prefab检查并且修改点亮情况;
(2)编辑器模式下加载完一个Prefab之后检查是否点亮,如果没有则打印Error。
感谢沈杰@UWA问答社区提供了回答
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<UMaterial>(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问答社区提供了回答
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859