unity タイルマップ(2)
環境
Unity2018.2f
関連記事はこちら
各設定について
タイルの大きさ
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、コライダの衝突判定中に効果をかけられるっぽいんですが、これも面白そう。いつか記事にしたいですね。
まとめ
タイルマップについて、もう少し掘り下げてみました。
近いうちにタイルマップについてのバッチング処理やドローコール数についてもまとめていきたいですね。