LWFとカメラの位置
LWFは既存のUnityプロダクトとは大分違った思想で作られてる気がする。今はそれが「凄く使いにくい」につながっているが、理解すれば凄く使いやすい物に変わるはず…(多分)
とりあえずスプライトが出現する位置について、少し勘違いしていたらしい。
どうやらLWFはFlash内のマージンまで再現するらしく、それがあの奇妙な位置にスプライトを表示する原因だったらしい。
座標系(らぶらぶはぁと)
http://www.loveloveheart.com/unity/lwf/coordinate_system.php
なので「UI丸ごと再現」するといった目的であれば、この仕様は非常に正しいっぽい。
ちなみに「UI丸ごと再現」するにはカメラを正しく設定しなければならない。
なにせLWFは「シーンビューに表示されない」致命的な問題があるので(表示出来る物もあるが、概ね表示されない)カメラの設定方法を忘れると本当に使い物にならない。
この部分で躓いた人は多いと思うし、自分もちょくちょく忘れるのでメモっとく。
■カメラの設定
LWFのカメラ設定は、下のような設定にしてやる必要がある。
・ProjectionをOrthographicに
・SizeをFlashの横幅に
・Transformのpositionを、xはFlash横幅の半分、yはFlash縦幅*-1
下の画像はFlashサイズ(640,480)の例。
■NGUIの場合
LWFはNGUIのGUIと連携することもできる。
【LWF】【NGUI】NGUIでLWFを表示する
http://unity-study.net/archives/495
しかしNGUIはカメラ設定を勝手に変更する便利なUIRootがあり、普通に動かすと画面外にスプライトが行ってしまう。
なので対策としてUIRootの「Automatic」のチェックを外し、Manual HeightをFlashの高さに合わせてやる。次に画面の比率をFlashの比率似あわせてやればOKらしい。
ちなみにNGUIを通してLWFを使うと、LWFObjectInspectorから確認出来なくなるらしい。これのせいで「LWF動かしてんのに動いてない」という状態になって3時間ほどソースコードとにらめっこしてたのは秘密。