You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Phaser 3.60.0-beta.22中如何修改Spine插槽颜色?

解决Phaser 3.60.0-beta.22中Spine插槽颜色修改的ReferenceError问题
  • 问题根源:IDE不报错是因为TypeScript类型定义包含了spine全局声明,但运行时Phaser并未将spine挂载到全局环境,直接访问spine.Color会找不到定义。
  • 解决方案:从Phaser集成的Spine插件入口获取spine对象,再创建颜色实例。

提供两种可行的代码写法:

写法1:通过Phaser的Spine命名空间获取

// 先从Phaser的Spine命名空间拿到spine对象
const spine = Phaser.GameObjects.Spine.spine;
// 找到目标插槽
const slot = skeleton.findSlot('slot-name');
// 直接赋值颜色
slot.color = new spine.Color(1, 1, 1);

写法2:从已创建的Spine游戏对象中获取

如果已经在场景中添加了Spine对象,可以直接从该对象的spine属性取用:

// 假设已经创建了Spine游戏对象
const spineObj = this.add.spine(100, 200, 'your-spine-asset-key');
// 从对象中获取spine命名空间
const spine = spineObj.spine;
// 找到插槽并修改颜色
const slot = spineObj.skeleton.findSlot('slot-name');
slot.color = new spine.Color(1, 1, 1);

补充:如果修改颜色后未立即生效,可调用slot.setColor(new spine.Color(r, g, b))或者触发骨架更新(部分复杂动画场景可能需要)。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:47:02