2013年6月5日水曜日

UNITY 2D ゲーム開発: 背景の多重スクロール

2Dで多重スクロールを行うには、基本的に2つの事さえ理解できてればOK。

1.テクスチャのオフセット
2.テクスチャのタイリング

背景というだけあり、基本的な構造はシンプルだ。
平面ポリにテクスチャをペタっと貼っただけ。

これをプレイヤーの移動速度と違う速度でオフセット値をホニャララしてやれば、基本終了。

テクスチャのタイリングはシェーダで決める。インスペクタだとシェーダの下にあるボックスで。
コードベースならマテリアルで決める。

例えば、木のような背景ならx方向に何回とか。
例えば、レンガみたいな背景なら、もっと沢山x方向にもy方向にもタイリングするだろう。


オフセットはマテリアルからメインテクスチャのオフセットで。
renderer.material.mainTextureOffset

タイリングはスケールで。
renderer.material.mainTextureScale


配置について:


2Dゲームで、マップをけっこうな距離移動するタイプのゲームの場合(マリオ系)、
カメラをもう1台設置して、背景専用にするアプローチが○。
マップに重ならない位置に固定でおk。
DepthをmainCameraより背景にして、mainCameraのClear FlagsをDepth Onlyに、
背景カメラのClear Flagsはどうせ背景で全部隠れてしまうので、何でもOK。軽いほうで。

あとは、プレイヤーが移動する時にオフセット値移動しろよーとsendmessageしてもいいし、
背景用の関数呼んでもおk。動作が軽いほうで。


参考リンク:
MaterialのTiling(タイリング)を操作する

UNITYで多重スクロール

愚痴:
なんでUNITYには10x10みたいなPLANEしかないんだろう。
1x1の四角で3角形2つ!ってシンプルなやつがなんで初めから無いのか意味がわからん。

0 件のコメント:

コメントを投稿

間違っていたらご指摘ください