在TMP中计算书名号《》高度的问题

1)在TMP中计算书名号《》高度的问题
2)FMOD设置中关于Virtual Channel Count&Real Channel Count的参数疑问
3)Unity 2021.3.18f1 ParticleSystemTrailGeometryJob粒子拖尾系统崩溃
4)XLua打包Lua文件粒度问题


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

UI

Q:如下图所示,输入的文字中有书名号,但使用ContentSIzeFitter计算得到的高度是错误的(貌似它计算的比实际少,导致没换行):

而使用默认的Text就没这个问题(相同的字体):

请问如何在TMP中计算书名号《》的高度?

A:好像是对东亚语言有特殊处理,都会换行。不确定是不是这儿的原因,输入"你好"两字也是一样的效果,可以在这儿改改试试。

把这行注释掉就没问题了,但我不保证没其他问题,因为要把TMP的包导入项目里,源码会少算了换行第一个字符的长度,GeneratedMesh和PreferedHeight是分开算的,所以显示和高度计算不一样,GeneratedMesh是对的,这是Unity自己的Bug,后面几个版本修复了,估计还是得想办法升级TMP的版本。

参考文档:
Changelog | TextMeshPro | 3.2.0-pre.9

感谢萌呆瞎@UWA问答社区提供了回答


Audio

Q:FMOD的设置中,我发现有两个设置选项:Virtual Channel Count和Real Channel Count。想请教一下,一般游戏项目内这两个值要设置多少才合适?我发现外网有人都是拉满的,但这会造成CPU负担。只知道Real Channel Count这个不能太高。所以想了解下通常这俩参数设置多少比较合理。

下图来自外网论坛,Virtual Channel Count设置为512、Real Channel Count设置为128,而我的项目中这俩设置为128、32。

A:Real Channel,如果设置成32对于PC来说是正好。对于移动平台,32应该也能跑。对于超古老的机器,可以考虑设置成16。

Real Channel是同时播放的音频Channel数,如果同时播放的Channel超过这个数字,就会根据优先级把低优先级的音频停掉。实际项目中,极少同时播放如此之多的Channel。如果真发生了,请仔细优化音频播放逻辑。

感谢Zhang Ce@UWA问答社区提供了回答


Crash

Q:Unity 2021.3.18f1 ParticleSystemTrailGeometryJob粒子拖尾系统崩溃。

信息如下:
崩溃手机:Galaxy S24 Ultra

操作系统:Android14

崩溃堆栈:

Crashed: Thread: SIGSEGV 0x0000007d2f34a900
#00 pc 0xb30240 libunity.so (ParticleSystemTrailGeometryJob::ConfigurePerParticleTrailParams(ParticleLineParameters&, ParticleSystemParticles const*, unsigned long, ParticleSystemTrailGeometryJob const&, float)) (BuildId: c89a8ec16cd55b42b7a6c100718f0e187c531fc3)
#01 pc 0xb29b08 libunity.so (ParticleSystemTrailGeometryJob::ConfigurePerParticleTrailParams(ParticleLineParameters&, ParticleSystemParticles const*, unsigned long, ParticleSystemTrailGeometryJob const&, float)) (BuildId: c89a8ec16cd55b42b7a6c100718f0e187c531fc3)
#02 pc 0xb136b8 libunity.so (ParticleSystemGeometryJob::RenderJobCommon(ParticleSystemGeometryJob&, void*, void*)) (BuildId: c89a8ec16cd55b42b7a6c100718f0e187c531fc3)
#03 pc 0x5d084 libc.so (BuildId: 37f537c2ba9dcbb262a0a68f41a21da4)

针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Lua

Q:目前项目中使用XLua,Lua文件一般是每个Lua文件都打一个AssetBundle包,还是所有Lua都打一个AssetBundle包里?直观感觉上每个Lua都单独打一个AssetBundle包比较方便热更新。

A:如果Lua文件数量很多(十万级别),建议不要打Bundle,因为Bundle Header中要存储、反序列化的Asset信息过多,内存会吃不消,所以最好换成自定义的文件方式。参考星铁的Lua。

如果数量少,直接一个Bundle就足够。这样加载也方便:从一个固定的Bundle里Load Asset。

感谢James@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

相关推荐
CoderIsArt1 天前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
TomEval2 天前
【Web UI 自动化】05 - KDT 模式原理与实现
前端·ui·自动化
呆呆敲代码的小Y2 天前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
呆呆敲代码的小Y2 天前
Lua 上值(UpValue)
开发语言·junit·lua·lua上值·upvalue
呆呆敲代码的小Y2 天前
【游戏开发】xLua 性能优化技巧
junit·性能优化·lua·xlua
简单Janeee2 天前
[Vue 3 从零到上线]-第九篇:更美更强——引入 UI 库与网络请求 (Axios)
网络·vue.js·ui
曼巴UE52 天前
Unlua UE5.3 调试
ue5·lua·unlua
nvd112 天前
实战:用 Lua 手写 Kong 安全鉴权插件并通过 ArgoCD GitOps 零编译部署到 DbGate 服务
安全·lua·kong
中国软件测试质量协会2 天前
奇林测试平台(kylinTOP)UI自动化测试能力深度解析
ui
greasyfork3 天前
Mac Sketch v2026.3 矢量图设计工具
macos·ui·sketch