お世話になっております。SS6Player for Unity担当です。
お返事が遅れてしまい、申し訳ありません。
UnityのAnimatorでは再生中にAnimationEventでメソッドを呼び出すことが可能でしたが同じことがSS6PlayerForUnityでも可能かどうか知りたく、質問させていただきました。
SS6PUのUnity-Nativeモードでのインポートでは、アニメーションデータに「ユーザーデータ」が設置されていると、それのフレームを再生した時に特定の名前の関数(メソッド)が呼ばれるようになっています。
2種類の呼び出す関数の仕様がありまして……
- SS6PU Ver.2.1.9 より前
- SS6PU Ver.2.1.9以降
で、「Ver.2.1.9以降」は「Ver.2.1.9より前」にコールバックの方法が追加されています。
SS6PU Ver.2.1.9 より前(従来共通方式)
ユーザーデータの「数値」が設定されている場合:
Script_SpriteStudio6_RootUnityNative.FunctionEventInt(int value)
ユーザーデータの「文字列」が設定されている場合:
Script_SpriteStudio6_RootUnityNative.FunctionEventText(string value)
関数がAnimationEventに固定名で設定されていて、呼び出されます。
SS6PU Ver.2.1.9 移行(従来方式への追加方式)
※この方法はインポータの「Convert To Unity-Native」モードで、「Oprtion Basic」内「Integrate "UserData" event Callback-Function」が非チェックで・「Convert parameter "~" in "UserData"」がそれぞれチェックされている場合に設定されます。
ユーザーデータの「矩形」が設定されている場合:
Script_SpriteStudio6_RootUnityNative.FunctionEventCoordinate(string value)
ユーザーデータの「矩形」が設定されている場合:
Script_SpriteStudio6_RootUnityNative.FunctionEventRectangle(string value)
関数がAnimationEventに固定名で設定されていて、呼び出されます。
Ver.2.1.9以降(新規方法)
※この方法はインポータの「Convert To Unity-Native」モードで、「Oprtion Basic」内「Integrate "UserData" event Callback-Function」がチェックされている場合に設定されます(FunctionEventInt/Text/Rectangle/Coordinateの各関数とは排他で設置されますので、併用はできません)。
ユーザーデータが設置されている場合
Script_SpriteStudio6_RootUnityNative.FunctionEventUserData(string value)
関数がAnimationEventに固定名で設定されていて、呼び出されます。
Ver.2.1.9以降で追加された方法については、イベント関数に渡ってくるユーザーデータの内容がJSONでシリアライズされているため、内容を覗くためには一定の手順が必要になります。
その詳細は下記のURL(SS6PUのGitHub内のIssue)を参照していただけますようお願いいたします。
https://github.com/SpriteStudio/SS6PlayerForUnity/issues/92
※Issueの文章の中身が英語なのですが、サンプルコードは四角の中(コードブロック)に記載してあるので、通常の文章と見た目で判別していただけるかと思います。
お忙しい中お手数とは存じますが、何卒今後ともよろしくお願いいたします。