さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

2D見下ろし型マップ

問題

 斜め上から見下ろしたような画面をつくるとき、まず困るのがキャラの描画順。

f:id:enuenupi:20141022004132p:plain

 2D的にキャラを並べただけだとこんな感じになったりする。

 OrderInLayerを使えば解決することはできるけど、毎フレーム処理するのも鬱陶しいなあ、とか、他にも色々問題がでてくるので、別の方法で解決する。

対応

 Spriteの描画順は、カメラからの距離で決定する。

Unity - Manual: Sprite Renderer

 ので、カメラを傾けることで描画順を解決する。
 そんなの当たり前じゃんとか言わない。

 カメラは下から見上げるような角度に設定する。

キャラがつぶれる

 そのままだとキャラは斜めから見ることになり、縦方向が短く潰れてしまうので、角度をいじってビルボードにしてやる。
 pivotは足元に設定しておくとベネ。

  transform.rotation = Camera.main.transform.rotation;

地面がつぶれる

 地面も斜めから見ることになる。
 こっちはビルボードにせず、スケールをいじって等倍に見えるように辻褄をあわせた。

スクショ

f:id:enuenupi:20141022004134p:plain

 シーンビューで見るとわかりやすい

before  

f:id:enuenupi:20141022004439j:plain

after  

f:id:enuenupi:20141022004135j:plain

 地面にも何か柄を入れておけばよかった。