SpriteStudio / SS5PlayerForUnity

OPTPiX SpriteStudio 5 Player for Unity
http://www.webtech.co.jp/spritestudio/
MIT License
39 stars 15 forks source link

全般 NULLパーツの座標を取得することはできますか? #111

Open nduplex opened 9 years ago

nduplex commented 9 years ago

お世話になります。 SS上でアニメーション毎に設置したNULLパーツの座標を取得したいと思っています。 座標を取得したいNULLパーツにはそれぞれ固有の名前が付けられているのですが それを元にUnity上でインスタンス化したデータからX座標とY座標を取得することは可能でしょうか?

以上よろしくお願い致します。

MasamiYitsuse commented 9 years ago

nduplex様

お世話になっております。 端的には可能です。

NULLノードそのものの(SS5上でNULLパーツにそのまま設定されている)アトリビュートの値(=直接の親パーツからの相対座標)を取得したい場合、 「そのNULLノードの名称がついていて・Script_SpriteStudio_PartsNULL.csのコンポーネントが付いているGameObjectのtransform.localPosition」 で取得可能です(x座標は.x・y座標は.yのメンバになります)

一方シーン内のグローバル座標(実際におかれている絶対座標=ワールド座標)を取得したい場合、 「そのNULLノードの名称がついていて・Script_SpriteStudio_PartsNULL.csのコンポーネントが付いているGameObjectのtransform.position」 で取得可能です(x座標は.x・y座標は.yのメンバになります)

以上となります。 お忙しい中お手数ですが、ご検証いただけますようお願い申し上げます。

MasamiYitsuse commented 9 years ago

nduplex様

追記となります。 上記方法で取得したtransformの座標は、取得を記載した関数もしくはスクリプトの実行順序によっては、1回前のUpdate処理時のものになります。

対処としては ・位置を取得する側のスクリプトの実行順序を、Script_SpriteStudio_PartsNULL.csよりも下げる(Monoに対して設定するスクリプトの実行順序値を大きくする) もしくは ・座標の取得をUpdate関数内ではなく、LateUpdate関数内で行う のどちらかが平易かと思われます。 (自力でアニメーションデータを解析するのは、ノードのアトリビュート設定値しか取れないのと・今後データ格納実装などが変更される可能性なども考慮すると、少々推奨いたしかねます)

以上となります。

nduplex commented 9 years ago

MasamiYitsuse 様

おかげさまで無事に目的のデータを取得する事が出来ました。 素早い対応ありがとうございます。