[Unity]Sprite Studio Playerでユーザデータの数値が常に0になるバグ

Sprite Studioには、Asset Storeから無料でダウンロードできるプラグインがあるわけですが、
ユーザーデータにちょっと仕込みを入れた時、数値が常に0になるバグがあったので、その修正方法を紹介します(誰得?な気もしますが)

  • 追記
    Ver.1.24にて修正されています。

まず、数値を格納している変数Numがuintになっていますが、どうやらuintはシリアライズできないらしく、Inspectorにも項目が出ていませんでした。
なので、まずはuintをintに変えます。(そもそもSpriteStudio上でも負値を入れることが出来たので、intが正解なはず)

public class SsUserDataKeyValue : SsAttrValueInterface
{
public bool IsNum;
public int Num; // ココ

それに伴って、SsaxImporterのNumを読み込んでいるところも変更します。

case SsKeyValueType.User:
{
var userKey = new SsUserDataKeyFrame();
keyBase = userKey;
var v = new SsUserDataKeyValue();
XmlNode numberNode = _SelectSingleNode(key, "./cur:Number");
if (numberNode != null)
{
v.IsNum = true;
v.Num = _ToInt(numberNode.InnerText); // ココ
}

もともとのValueがなんなのかよくわかりませんが、他のRectとかを見るにタグに囲まれたテキストならInnerTextが正しいようです。

これでバグも解消できたので、SEだろうとエフェクトだろうとスプライトのユーザーデータにいろいろ仕込めるぜ!

Unityのアセット販売中!

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!