From 25991c282a2568e7eac593e50dc2070e1998c312 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Mon, 26 Jan 2026 16:01:38 +0100 Subject: [PATCH] Fix editor crash due to skin ending with comma. --- spine-ts/spine-construct3/src/instance.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spine-ts/spine-construct3/src/instance.ts b/spine-ts/spine-construct3/src/instance.ts index 7ab0dd1b1..192f46868 100644 --- a/spine-ts/spine-construct3/src/instance.ts +++ b/spine-ts/spine-construct3/src/instance.ts @@ -125,6 +125,13 @@ class SpineC3PluginInstance extends SDK.IWorldInstanceBase { if (id === PLUGIN_CLASS.PROP_SKIN) { this.skins = []; + + const validatedString = this.validateSkinString(); + if (validatedString) { + this._inst.SetPropertyValue(PLUGIN_CLASS.PROP_SKIN, validatedString); + return; + } + this.setSkin(); this.layoutView?.Refresh(); return; @@ -245,6 +252,16 @@ class SpineC3PluginInstance extends SDK.IWorldInstanceBase { this.animation = propValue === "" ? undefined : propValue; } + private validateSkinString () { + const skins = this._inst.GetPropertyValue(PLUGIN_CLASS.PROP_SKIN) as string; + if (skins === "") return; + const split = skins.split(","); + + if (!split.includes("")) return; + + return split.filter(s => s !== "").join(","); + } + private setSkin () { const { skeleton } = this; if (!skeleton) return;