[Unity]uniSWFでゲームができたぉ | テキトーに全力疾走

テキトーに全力疾走

No music, no lifeで

走ったり、こけたり・・・・

ついに世の中にでました~♪パチパチ

ブラッシュアップしながら気づいた点を何個か
Unity本体に明るくないのでuniSWFに関係なかったらごめんなさい

【Texture】
Flash上で別のビットマップでも同一MCの中に置かれているとコンバート時に1枚の画像に変換される
なので離れて配置してると透明な無駄画像が出力されてしまう
これはビットマップを並列するときはMC化することで解決

ビットマップやシェイプを拡大すると拡大した大きさでテクスチャ化される
小さいものを拡大して使う場合はMC化して拡大する

↑みたいに拡大することで出力テクスチャは小さくなるけど拡大比率がでかすぎると
エッジの内側にボケがでるので極端な拡大は

まだクリッピング(マスク的なの)がα版なので使えません
なので画像自体をくり抜くカバーかけてごまかすしかないので
ここはデザイナーさんと相談しないと厳しい・・・・

これはFlashでの作業だけど読み込んだ画像プロパティは劣化なしに設定しておく
swfで出力したあとさらにuniSWFでコンバートされるのでこれしないと画像が酷いことになる

【ActionScript】
基本的に対応してません
(将来的に対応予定とは言っている)
なのでGameObjectに
・MovieClipBehaviourのコンポーネントを追加
・SWF内のリンケージを指定
・C#'(またはJS)のクラスをひもづける
このGemeObjectをprefab化することで
ASクラスを持ったMovieClipとほぼ同様の扱い方ができます

【テキスト】
日本語対応してますがuniSWFそのものの機能では使わない文字もぜーんぶ出力されちゃうのでまだまだ厳しいです
ダイナミックテキスト使うにはUnity-sysfont一択だと思ってます!
※使い方についてはこちら

【MovieClip】
swfだとタイムラインの必要のないものはグラフィックにしていたけど
uniSWFの構造上グラフィックにするとかえってバイナリファイルが大きくなる
よって何もかんがえずにすべてMC化

タイムライン上にASがあるとコンバートエラーになります
よってstop()やgotoAndPlay()などのタイムライン関数をFlash内に書けません

ループ再生や指定ラベルだけを再生したい場合はラベルの終わりに
トリガーになるラベルを追加してプログラムで制御する必要がある
連続する必要がないのであればタイムラインを長くするよりは細かくMCで分けた方が
使い勝手はいいかもしれません

【uniSWFのExportOption】
基本的にデフォルト設定で問題ないと思いますが
画像数が多い場合はTextureSizeを適宜変更して枚数減らした方がいいかも
またDynamicTextを仕様している場合は数字・アルファベット・記号がtextureに書きだされます
↑で紹介したsysfontなどを使うのであれば必要ないのでembeded charactersに1とか@とか1文字入れとくと幸せ