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;