1)TMP的暗影性能如何
2)CommandBuffer.DrawMeshInstanced无奈画暗影问题
3)Unity编辑器在Require大量加载Lua文件时,常常报出not enough memory
4)场景制作的时候,2D资源受后处理调色影响比拟大


这是第335篇UWA技术常识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地把握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:465082844

TextMeshPro

Q:请问TMP的暗影性能如何?TMP的描边没方法改成外描边吗?看起来Outline是内外都扩的,如果想要改成外扩只能改源码吗?

A1:UGUI的Outline会让对象多渲染n次,TMP的Outline并不会让对象的渲染次数减少,性能更好。

在这个Shader中把“+outline”删除,Outline就会只往外扩散了。

感激Xuan@UWA问答社区提供了答复

A2:TMP的暗影性能十分不错,因为它应用的是基于间隔场的渲染技术,这种技术能够在放弃高质量的状况下缩小渲染工夫。这意味着,即便在文本中应用多个暗影成果,也能够取得良好的性能体现。

至于TMP的描边成果,它是反对外描边的。默认状况下,TMP的描边是内外都扩的,然而你能够通过更改材质属性来将其改为外描边。

具体来说,你能够在应用TMP组件的对象上找到对应的材质,而后将材质的Outline Width属性设置为正数,这样就能够将描边扩大到文本的内部。

须要留神的是,TMP的材质是应用ShaderLab语言编写的,如果须要批改其外部逻辑,可能须要肯定的编程常识。然而,对于简略的批改,例如更改描边成果,你能够尝试应用Shader Graph工具来简化批改过程。

感激NG週@UWA问答社区提供了答复

Rendering

Q:想用CommandBuffer.DrawMeshInstanced画暗影,应用的是URP的Lit Shader,ForwardLit 是能够的,且能够AfterRenderingOpaques。然而暗影是画不进去,请问有什么解决办法吗?以下是代码(代码不是原创):
https://forum.unity.com/threads/commandbuffer-drawmeshinstanc...

局部代码截图:

针对以上问题,有教训的敌人欢送转至社区交换分享:
https://answer.uwa4d.com/question/6455c52f66cf0b727a3226f9


Rendering

Q:场景制作的时候,要不要开着后处理,遇到的问题是2D资源受后处理调色影响比拟大?

咱们的状况比较复杂:
1. 从性能角度思考,低配机型是不开后处理的
2. 2D角色、2D修建、3D场景混合渲染
3. 有半解锁的和平迷雾成果

在这些需要下,场景制作跟后处理要怎么协同呢?

思考了几个计划都不太行:
1. 在UI相机画2D,但无奈完满解决深度问题,因为场景的RT是缩放过的,但UI采纳全分辨率
2. 2D片写入Stencil,有一些半透的云可能遮住2D片,写入Stencil解决的话可能会有显著的边界问题,且UberPost最初是全屏的,因为场景RT跟界面RT尺寸不同,Stencil也不对应
3. 将后处理的调色放到Opaque之后进行,但这样其余的半透则无奈参加调色,且这种计划带来更多的RT切换,在挪动端并不明智

当初想着是在不开前期的状况下设计场景,而后前期调色只是进行微调,尽量不影响2D,如果成果甚微的话,就不开启前期调色了,不知这样解决如何?次要是2D与3D混合的场景,不是说UI,UI相机自身是不开前期的,不知大家有什么计划?

针对以上问题,有教训的敌人欢送转至社区交换分享:
https://answer.uwa4d.com/question/643e255a4530066a5c277d8f


Lua

Q:在Unity 2018编辑器上跑时,启动Require大量加载Lua文件时,常常报出not enough memory,很频繁但非必现,在Windows/Android/iOS上都不会,用的是toLua。

A:能够在编辑器外面用System.IO.File的接口读Lua,避开TextAsset在编辑器不能卸载的问题。或者尝试降级Lua版本。

感激欧月松@UWA问答社区提供了答复

封面图来源于网络


明天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,咱们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起摸索分享。欢送更多的开发者退出UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官网技术QQ群:465082844