Tencent / puerts

PUER(普洱) Typescript. Let's write your game in UE or Unity with TypeScript.
Other
5.1k stars 709 forks source link

[Unity] Bug: 新的webgl库打包后FunctionCallbackInfoPtrManager这边会出很多问题 #1401

Closed dunadain closed 1 year ago

dunadain commented 1 year ago

前置阅读 | Pre-reading

Puer的版本 | Puer Version

2.0.0

Unity的版本 | Unity Version

2022.3.0

发生在哪个平台 | Platform

Editor(mac)

错误信息 | Error Message

image

问题重现 | Bug reproduce

TestWebgl.zip 直接发webgl包,搭个静态服务器就能复现。里面只是用js调用了个切场景的方法,好像是因为参数多就出错了。 public static async Task LoadSceneAsync(string path, LoadSceneMode loadMode = LoadSceneMode.Single, bool activateOnLoad = true, Action onComplete = null, Action onProgress = null) { var handle = Addressables.LoadSceneAsync(path, loadMode, activateOnLoad); var inst = await handle.Task; if (handle.Status == AsyncOperationStatus.Succeeded) { onComplete?.Invoke(handle.Result); } return inst; }

另外,现在还会出现参数错乱的问题: await resMgr.loadPrefab(ResPaths.NetWorkFailedPrefab); // 会加载多个依赖的assetbundles for (let i = 0; i < 20; ++i) { resMgr.log(langPath); resMgr.log(strTablePath); resMgr.log(ResPaths.Proto); } image 这是我传给c#的string,要么变成空,要么变成乱码,要么少几个字符。也是得打出webgl包。 感觉也应该是这边缓存的问题。不知道怎么用个简单的项目复现。在我项目里加载多个assetbundle后,传字符串就开始出问题了。

zombieyang commented 1 year ago

2021会吗

dunadain commented 1 year ago

2021会吗

都一样

zombieyang commented 1 year ago

这两个问题有没有因果关系?是出现第一个问题,后续就会乱吗?还是两个各自独立出现的

dunadain commented 1 year ago

这两个问题有没有因果关系?是出现第一个问题,后续就会乱吗?还是两个各自独立出现的

独立出现。

zombieyang commented 1 year ago

有空帮忙测试一下这个: https://github.com/zombieyang/puerts_unity_webgl_demo/commit/59dc9bcdd4256ec6c3220d5c09adf575565e09b5

第一个问题比较确定,已经修复了 第二个问题不太确定。目前怀疑是因为之前用了float来存储string的内存offset。现在改成int来存了。

dunadain commented 1 year ago

貌似ok了都