没解决 
库要用@dimforge/rapier3d-compat 或@dimforge/rapier2d-compat
然后tsconfig.json要里的compilerOptions,添加"allowSyntheticDefaultImports": true
使用时直接
import RAPIER from ‘@dimforge/rapier2d-compat’;
或
import RAPIER from ‘@dimforge/rapier3d-compat’;
谢谢大佬,有时间我再试试 
感谢 安装也能读取到RAPIER 但是调用api就报错了 new RAPIER.World就undefined了. 是wasm的原因?
你是怎么用的~
TA的官方文档有写
要先调用Rapier.init().then(()=>{})
才行以进行其他api调用,init主要就是异步加库wasm
你好,请问打包成微信小游戏报以下错误,WebAssembly.instantiate: first argument must be a string。有办法解决吗?
https://forum.cocos.org/t/topic/152688
这个要去ta 的github项目里,找一下WebAssembly.instantiate 的处理改了再重新打包一个版本来用了
试了吗?为啥我还是不好使
没有,没排期。
你是不是直接调ta库里的东西?按我的import RAPIER from ‘@dimforge/rapier2d-compat’;设置后, 每次都必须是RAPIER.Rigidbody这様, 你不能用import {Rigidbody} from ‘@dimforge/rapier2d-compat’, 这様调会显示Rigidbody undefine
请问是rapier.js这个仓库吗
我是用@dimforge/rapier2d-compat 和 @dimforge/rapier3d-compat
这个包的wasm是base64的,是要先解析保存为wasm文件,然后再instantiate么,还是直接载入rapier_wasm2d_bg.wasm呢
不需要呀, 你调init就好了, 它都帮你处理好wasm文件的处理了
import RAPIER from '@dimforge/rapier2d-compat';
RAPIER.init().then(()=>{
const world = new RAPIER.World({x:0,y:-98});
});
微信小游戏也可以么,我这边有一个WASM的初始化报错ERROR: Error: WXWebAssembly.instantiate: only support file type .wasm or .wasm.br
我是发自家产品webview里的, 没在微信小游戏试过. 按你那报错, 估计 是微信限制了wasm实例方式
我猜你可以先源码里定义一个静态变量, 然后再把代码中这段WebAssembly.instantiate(第一个参数改为读取你定义的静态变量。
然后把.wasm文件放到resouces目录下, 再使用
比如你定在源码定义了一个wasmUrl静态变量
import RAPIER from '@dimforge/rapier2d-compat';
cc.resource.load( xxxx,cc.Asset,(err,asset)=>{
RAPIER.wasmUrl = asset.nativeUrl
RAPIER.init().then(()=>{
this.node.emit('rapier-inited');
});
}
不知能不能行, 但可以试试
测试后微信小游戏平台可以跑通,多谢大佬指点!
你给ta一个微微的角速度呗, 很多物理引擎都是这様,调用rigidbody.setAngvel(你的角速度值)
这个2d,引入就5m了,而且我的是这样的
。在default里面
引入这个物理引擎之后遇到一些奇怪的适配问题.不知道有没有大佬们遇到过类似的问题?在原生浏览器或微信开发者工具中测试没有问题,但是在苹果真机上会出现部分刚体不能触发碰撞穿越过去的情况…我大概同时构造了三百到四百个刚体
