V7投稿|如何在项目中开发并使用WebAssembly(WASM)来了

企业微信截图_736335ac-dbe7-4e20-bd9c-520ca61263ba

本着科学研究的精神,找了个mac去测试一下wasm,出来这个结果。
然后在论坛上逛了一遍,3.8.2讨论贴里也有人说ios原生端不支持。

2赞

gg 思密达

:sweat_smile: 哈哈,gg不至于,web,微信抖音小游戏,安卓原生还是能用用。。

大佬请教一个问题,我打了一个demo.wasm文件,里面就一个加法,然后在Safari14.0上,WebAssembly.validate(bytes)为false,这是为什么呢

这篇文章真不错,我也喜欢。收藏了。

image
image

在windows+chrome里面是可以的,Safari14.0没机会测试哈,写法不一样的话,您参考下我这代码试试。

(帖子被作者删除,如无标记将在 24 小时后自动删除)

image
哥哥们,这个网址是多少来着,我突然找不到地址了。

caniuse.com

https://caniuse.com/?search=webassembly

我用微信,使用开发者工具没问题。
但是用真机预览,initSync里会报错。
结果是WebAssembly里并没有Module。
改一下代码,将这段判断去掉。就可以运行的。

:+1: 感觉wasm在不同平台有不同待遇,总归能跑起来,就能再提高点性能

已经尝试过把某些VM打进去在某些平台上测试通过了 :yum:,很有搞头 :face_with_hand_over_mouth:

大佬真会玩 :smile:

把unity能用的那套原理扒出来就会发现卧槽凭啥unity能搞cocos也支持了这东西为啥就不能搞呢 :rofl:

我试过了微信 抖音这样的大平台没问题,但是什么美团啥的非主流平台问题一大堆 :rofl:

非主流的没试过,美团这些还能跑小游戏??

能,美团甚至能玩原神 :rofl:

感谢回复,已经解决了。

感觉和WebAssembly模块的实现语言有关,我用Rust、AssemblyScript、C分别实现了一次,因为我的功能需要传数组,然后只有用 C 实现的在Safari14.0可以通过WebAssembly.validate()校验,在Safari14.1以上版本以及chrome倒是都没问题。

不知道什么原因,可能是写得不对。

把导出的wasm.js和wasm.d.ts文件直接拖入到对应文件夹下面后,在文件夹下新建一个package.json文件,在里面写入"type": “module”,保存,然后TS文件中import { initSync, InitOutput } from ‘./xxx/wasm.js’;就可以读取对应的.d.ts文件了
引擎文档里有相关介绍,https://docs.cocos.com/creator/manual/zh/scripting/modules/spec.html

1赞