Unityのアセットの1つ、2DToolkitを久々に触ってみる。
覚えながら簡単な横スクロールアクションの1つでも作ってみたいなー。
今のところ何も知らないのでとりあえず公式ドキュメントを読みます。
適当に翻訳しながら自分で試したスクショを載せていきたいと思います。
(誤訳してたら教えてください英語できる人)
公式ドキュメント
http://www.unikronsoftware.com/2dtoolkit/docs/latest/
その中から今日はこちら
The tk2d Camera
http://www.unikronsoftware.com/2dtoolkit/docs/latest/tutorial/tk2dcamera.htmlUnityはNGUIにしろ2DToolkitにしろ、事あるごとにカメラが出てきて難しいですね。
あれこれ考えても仕方ないのでやってみることにします。
環境
・Unity 4.3.2f1・2D Toolkit 2.3.3
でははじめます〜
大事な事
スプライトとtk2dCameraをうまく連携させるためには、SpriteやFontに対してtk2dCameraと全く同じ表示設定を適用する必要があります。これを最も簡単に行うには、tk2dCameraが既に存在する状態でSpriteCollectionを作成します。すると2dToolkitが自動的にカメラの設定を検出し、SpriteCollectionにセットします。
へぇ、便利。
tk2DCameraの作成
1、新規シーンを作成し、デフォルトのMainCameraを削除します。2、Hierarchy->Create->tk2d->Camera
3、デフォルトの解像度を設定します。今回は1024*768を選択します。
また、投影パラメータを設定します。ここでは1Pixel = 1Meterにします。
適切なカメラサイズを選択する際の注意事項についてはこちらを参照してください。(難しそうだったので後回し)
エラーしてる箇所はGameウィンドウの解像度が出るみたい。
FreeAspectじゃなくてちゃんと選んだらエラー消えた。
4、tk2dCameraはGameウィンドウの解像度でうまく動くようにがんばるらしい。
Gameウィンドウで選択する解像度をtk2dCameraにセットしてやればいいってことかな?
5、Spriteを追加してみる。
・Hierarchy->Create->tk2d->Sprite
・DemoCameraSpriteCollectionとheart_emptyを選択
え?何もでないけど…
SpriteCollectionとtk2dCameraの設定が違ってて大きく(もしくは小さく)表示された場合は1:1ボタン押してねって書いてある。けどきっと関係ないな。
画面外に出てるだけかな?とりあえず進めよ
6、Spriteの座標を(100,100,0)に。さっきカメラの設定を1Pixel=1Meterにしたからうまいこと100,100Pixelの位置にくるらしい。
ちゃんとでましたわ〜。いいねいいね。
オーバーライド
tk2dCameraは実行時の解像度に基づいて自身のサイズを変更できます。Gameウィンドウの解像度を変えることで色々な端末で実行する際にどのように表示されるか確認することができます。
アンカー
tk2dCameraはアンカーをサポートしてます。角と中心の計9カ所に固定できます。1、前ステップで作ったtk2dCameraを選択しましょう。
2、アンカーを追加します。
Hierarchy->Create->tk2d->Camera Anchor
3、これだけで固定場所とオフセットを設定できます。
4、アンカーの場所は常にこの設定に基づいて決定されます。このアンカーに接続したSpriteは常にその場所を基準とした座標となります。
例えばハートを画面右上に固定した場合、実行時の解像度に関わらず常に右上に表示されます。
アンカーを右上に固定し、
Spriteをアンカーにぶら下げて座標を調整
いい感じになりました。
まとめ
いいねー簡単ですねー。カメラの解像度と端末の解像度が違った場合どう引き延ばされたりするのか気になるけど今はまだいいや。そのうち試してみよう。
最近PHPばっか触っててUnity久々。やっぱ楽しい♪