• 在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

     

  • 相关阅读:
    LeetCode hot100-61-G
    【Vue3】使用mitt实现任意组件通信
    css有用的小技巧(vue2)
    docker入门
    1044 Shopping in Mars(二分)
    算法基础-数学知识-质数、约数
    MySQL占用内存过大解决方案
    【手写算法实现】 之 朴素贝叶斯 Naive Bayes 篇
    Linux系统下祼机安装mysql8.0和docker mysql 8.0 性能差异对比~
    C语言学生成绩信息管理系统【结构体+文本】
  • 原文地址:https://blog.csdn.net/UWA4D/article/details/136324901