在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

相关推荐
大侠归来2 小时前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
传奇开心果编程11 小时前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
zhchyun200812 小时前
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(10)
ui·unity·游戏引擎
传奇开心果编程12 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
kiros_wang15 小时前
渐变/阴影/滤镜⾼阶⽤法:统⼀项⽬UI、精简冗余组件
ui·harmonyos
疯狂成瘾者16 小时前
海康 Artemis 接口对接
开发语言·lua
沫璃染墨21 小时前
《Qt从零入门系列(十一):Qt事件机制详解——从QEvent到鼠标、键盘与定时器事件》
c++·qt·ui·硬件工程·交互·个人开发·qt5
一线灵1 天前
跨平台游戏引擎 Axmol-2.11.5 发布
游戏引擎·lua
rhett. li1 天前
用 AI 写 C++ 桌面 UI:TRAE + nim_duilib 实战指南
c++·人工智能·ui
传奇开心果编程1 天前
【Flutter入门练中学】第3课:滚动与列表
android·学习·flutter·ui·ios