在网页上播放spine时如果数量过多或者用户浏览器自身问题,spine动画会丢失,例如chrome默认webgl最多16个同时存在,如何突破这个限制
WebGL Limitations
在网页上播放多个Spine动画时,浏览器的WebGL上下文限制可能会导致动画丢失。通常,移动浏览器的限制较低,可能只有4个,而桌面浏览器可能允许更多。要突破这个限制,可以使用以下方法:
重用Canvas:通过动态添加和移除Canvas来管理WebGL上下文的数量。例如,在Esoteric Software的Spine Demos页面中,使用了一个技巧来重用Canvas。页面上只有少量的Canvas,随着用户滚动,Canvas会被移除并重新用于新的位置。
使用单一Canvas:将多个骨架渲染到一个Canvas中。可以使用
spine-webgl
来实现这一点,它允许在同一个WebGL上下文中显示多个骨架。选择合适的运行时:如果
spine-webgl
过于复杂,可以尝试使用其他运行时,如spine-phaser
,它更适合在单个Canvas中显示多个骨架。
通过这些方法,可以有效地管理WebGL上下文的使用,避免超过浏览器的限制。
- 수정됨
Spinebot's answer is good. Additionally, we've just released an early version of our spine-webcomponents
, which makes using Spine in web pages a lot more powerful. It's available for 4.2 and if you want to take an early look, see here:
EsotericSoftware/spine-runtimestree/4.2/spine-ts/spine-webcomponents
Check out this extensive demo page:
https://esotericsoftware.com/files/spine-widget/tutorial.html
As you can see, with spine-webcomponents
you can have an enormous number of Spine skeletons on a web page without any problems. That page has 80+ skeletons on it!