临时解决方案: 替换 laya.d3.js 库中刷新粒子的两个方法
_retireActiveParticles() {
const epsilon = 0.0001;
while (this._firstActiveElement != this._firstNewElement) {
var m = this.maxParticles == 1 ? 4 : 1;
var index = this._firstActiveElement * this._floatCountPerVertex * this._vertexStride * m;
var timeIndex = index + this._timeIndex;
var particleAge = this._currentTime - this._vertices[timeIndex];
if (particleAge + epsilon < this._vertices[index + this._startLifeTimeIndex])
break;
this._vertices[timeIndex] = this._drawCounter;
this._firstActiveElement++;
if (this._firstActiveElement >= this._bufferMaxParticles)
this._firstActiveElement = 0;
if(this.maxParticles == 1){
this._firstNewElement = 0;
this._firstFreeElement = 0;
}
}
}
_freeRetiredParticles() {
while (this._firstRetiredElement != this._firstActiveElement) {
var m = this.maxParti