spine 设置材质属性
适用于 cc3
示例代码,from brawl
const mtrlCache = (this.armatureDisplay as any)._materialCache;
const tol = 10;
let cur = 0;
zz.timer.clearIntervalZ(this.flashIntervalId);
this.flashIntervalId = zz.timer.setIntervalZ(() => {
if (this && this.isValid && mtrlCache) {
cur++;
for (const k in mtrlCache) {
mtrlCache[k]?.setProperty("tarRate", (Math.abs(cur - tol / 2) * 2) / tol);
}
if (cur == tol) {
zz.timer.clearIntervalZ(this.flashIntervalId);
}
} else {
zz.timer.clearIntervalZ(this.flashIntervalId);
}
}, 17 as double);
【注意】不可以直接修改
customMaterial
或者getMaterialInstance
,需要修改_materialCache