1)Lua代码内存泄漏的疑惑
​2)一个Lua重复加载后造成的泄露问题
3)关于Addressable中计数的疑惑
4)合并Mesh的插件推荐


这是第265篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)

Script

Q:Lua Profiler提示调用红框中函数,每次都会增加大概0.23KB的内存,且随时间一直增加,请教一下,这个是因为闭包函数中用了局部变量i,局部table a导致的吗?

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

Script

Q:现在的被动技是Lua写的,所以每场战斗会Reload,但是又没有调用package.loaded[‘xxx’] = nil来强制释放,目前用的Tolua,不知道会不会自动释放?

感谢萧小俊@UWA问答社区提供了回答

Addressable

Q:试用一下Addressables,看了看调试窗口,发现Instantiation Counts这里的值只要调用过一次Addressables.InstantiateAsync后就一直为1,根据文档的描述是这里是每帧Addressables.InstantiateAsync的调用次数,难道真的是每帧都在调用?还是说是Unity的显示有错?

Addressables版本1.16.19,Unity版本2020.3.14f1,测试代码如下:

public AssetReference Prefab;
List<GameObject> ActiveObjs;

 private void Update()    {
        if (Input.GetMouseButtonDown(0)) {
            if (Camera.main.GetMouseInputCastPoint(Input.mousePosition, out var point)) {//这里是自己扩展的
                Prefab.InstantiateAsync(point,Quaternion.identity).Completed += (op)=> {
                    ActiveObjs.Add(op.Result);
                };
            }
        }
    }

  void ReleaseInstance() {
        foreach (var item in ActiveObjs){
            Prefab.AssetReference.ReleaseInstance(item);
        }
        ActiveObjs.Clear();
    }

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

Mesh

Q:在没有美术的前提下,Unity程序想要合并Mesh,求推荐好用的插件,我知道的有MeshBaker,有没有其它的推荐?

感谢萧小俊@UWA问答社区提供了回答

感谢翟孟飞@UWA问答社区提供了回答

20210830
更多精彩问题等你回答~

1.Vulkan API的性能及兼容性
2.Unity TMP字体方案如何选择
3.如何实现AAB包的增量更新

封面图来源于:Miku-LuaProfiler
xLua的性能分析器组件,同时支持XLua、SLua、ToLua。直观地显示Lua的GC和耗时、调用次数等。


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

03-05 15:17