deepkolos / three-platformize

一个让 THREE 平台化的项目,目前已适配微信,淘宝,头条小程序,微信小游戏
533 stars 82 forks source link

微信小程序,多个canvas如何设置? #10

Closed zhwy closed 3 years ago

zhwy commented 3 years ago

platform = new WechatPlatform(canvas); THREE.PLATFORM.set(platform);

THREE.PLATFORM只能绑定一个?这样我多个canvas就没法同时绘图了。

在不同的页面中绘图,每个页面中都会调用THREE.PLATFORM.set(platform),会出现以下问题:

image

deepkolos commented 3 years ago

是一个页面一个canvas对吧,我增加下这个测试用例,看看什么导致的

deepkolos commented 3 years ago

增加了多个页面公用一个three-platform的构建配置和例子

https://github.com/deepkolos/three-platformize-demo-wechat

测试的页面跳转路径是

pages/empty/index -> pages/index/index -> pages/empty/index -> pages/index-copy/index-copy

zhwy commented 3 years ago

不好意思,回复晚了。我是在轮播中使用,每个轮播图片是一个canvas,展示一个模型。

原本我是通过THREE.PLATFORM.dispose()先释放上一个展示内容,再重新set下一个的canvas,这样不会报错。

有公用的就方便多了,感谢!

deepkolos commented 3 years ago

这种的话,估计建议还是一个canvas吧,模型切换类似五福那个,ios下webgl内存释放不干净没打开页面没几次估计小程序就内存不足或者微信直接崩掉