ikoan unity 開発メモ

Unityに関するアレコレを日々つづっていこうと思います

unity タイルマップ(2)

環境

Unity2018.2f

関連記事はこちら

ikoans.hatenablog.com

各設定について

タイルの大きさ

SpriteのPixel Per Unitと実際のテクスチャのサイズがあってないと
Tile Mapに登録した時や実際に配置した際に位置とか諸々ずれそうな感じがした。
前回はSingle Spriteで試してみたんだけど、テクスチャのサイズが300x300なのに対し、
Pixel Per Unitが100だったから、なんだか諸々ずれた感じがしたんだろうなぁ。
今回はいい感じに塗れた。

一枚のテクスチャに複数のタイル

この場合も割と手軽にできました。
まずはテクスチャの設定で、Sprite Mode をMultiple に変更。
Sprite Editorを開いて、スライスします。
また、Multipleの場合も、ちゃんとPixel Per Unit をちゃんとした大きさの値に変更します。
これ、正方形の場合はいいけど、そうでないならどうするんだろう。それこそヘキサマップ・・・。

ひとまず置いておき、Tile Paletter を開きます。
ここで Create New Palette で新しいパレットを作成し、先ほどスライスしたSpriteをD&D
そうすると勝手に新しいパレットにインポートしてくれます。

描画先 Tile Map オブジェクトについて

場合によっては、タイルをレイヤーに分けて描画したい時もあると思います。
その場合は、Tile Map オブジェクトを新しく生成しましょう。
同じようにTile Palleteから選択したTileを描画できるはずです。
この時の注意点ですが、どちらのTileMapオブジェクトにTileが描画されるかは
Hierarchyでの選択は関係なく、Tile Pallete の Active Tilemap で決定されます。

一癖ある塗りかた

TileMapエディタでタイル選択した後、
Scene Viewを一度選択した後の方が、塗りのずれが小さいというか
直接塗りたいところをクリックするとドラッグとして検知されてしまうのか、
塗って欲しくないところに塗られてしまいますね。
ここは一癖ある感じですね。僕のPCだけかもしれませんが。

Tile Map オブジェクトにコライダを設定

TileMapオブジェクトにコライダを追加するのは簡単で
Tilemap Collider 2Dコンポーネントを追加するだけで大丈夫です。
テストオブジェクトを適当に作成し、BoxCollider2DとRigidBody2Dつけて
再生すれば、おー、すり抜けずにちゃんと接地します。
Physics Materialもつけられますし、便利ですね。
Offsetを設定することで、描画エリアと衝突エリアを少しズラせるのもいい感じです。

これ作ってて初めて知ったんですが、
Used By Effector、コライダの衝突判定中に効果をかけられるっぽいんですが、これも面白そう。いつか記事にしたいですね。

まとめ

タイルマップについて、もう少し掘り下げてみました。
近いうちにタイルマップについてのバッチング処理やドローコール数についてもまとめていきたいですね。