在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

相关推荐
逻各斯5 小时前
redis中的Lua脚本,redis的事务机制
java·redis·lua
小盼江7 小时前
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
vue.js·spring boot·ui
-优势在我11 小时前
Android TabLayout 实现随意控制item之间的间距
android·java·ui
虚假程序设计1 天前
python用 PythonNet 从 Python 调用 WPF 类库 UI 用XAML
python·ui·wpf
煤炭里de黑猫1 天前
Lua C API :使用 lua_tonumber 函数从 Lua 栈中提取数值
开发语言·lua
煤炭里de黑猫1 天前
Lua C API:深入理解 lua_pushnumber 函数 — 将数字压入 Lua 栈中
开发语言·lua
敢嗣先锋1 天前
鸿蒙5.0实战案例:基于原生能力的深色模式适配
ui·移动开发·harmonyos·arkui·组件化·鸿蒙开发
柳鲲鹏1 天前
Ubuntu编译jetlinks-ui-vue
vue.js·ui
煤炭里de黑猫1 天前
Lua C API :lua_insert 函数详解
开发语言·lua
mikey棒棒棒2 天前
Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)
数据库·redis·lua·redisson·watchdog·cas·并发锁