Unity 2017.2から2Dのタイルマップ機能が追加されました。スプライトからパレットを作成して、グリッド上で簡単にマップを作れるようになりました。Prefabをタイルマップに塗る場合は、現時点ではブラシを作成するようです。
sokobanパレット作成して、壁と地面をグリッドに塗ったところ
ブラシを一から作成するのは大変ですが、既にgithubにサンプルがあります。
https://github.com/Unity-Technologies/2d-extras
また、2d-extrasを使った簡単な2Dプラットフォームのデモもあります。
https://unity3d.com/jp/learn/tutorials/topics/2d-game-creation/intro-2d-world-building-w-tilemap?playlist=17093
このデモを動作させると、GameObject BrushとPrefab Brushがソースコード付きでありました。GameObjectBrushはグリッド上でゲームオブジェクトを配置したりするようです。またPrefab Brushはプレハブからブラシを作成するようです。
ブラシを作る必要があると思ったのですが、調べていくと2d-extrasを使えばよさそうなのが分かってきました。
ブロック崩しサンプル
https://github.com/Unity-Technologies/2d-techdemos
2d-extrasを使ったタイルベースのブロック崩しサンプルです。ブロックが消える時の衝突判定とタイル座標の求め方 などがBallスクリプトから分かります。
ここまで調べて分かったこと
Unity 2017.2でタイルマップ機能がリリースされたので、まだ2d-extrasなど細かい機能はUnity本体に取り込まれてないようです。初めて使う場合は、上記のプロック崩しサンプルと、2d-extrasを用意して、似たようなプロジェクトを作ってみるのがよさそうです。
Unity公式2d-techdemo
Prefab custom brush(プレハブカスタムブラシ)の作り方
ダウンロード
https://github.com/Unity-Technologies/2d-extras をgit cloneまたはzipファイルでダウンロードして展開します。2d-extras/Assets/Tilemapフォルダーがあるので、これを自身のプロジェクトにコピーします。
ブラシ作成
コンテキストメニューからCreate->Prefab Brushでブラシを作成します。
ブラシにプレハブを設定
Tile Paletteタブから作成したブラシ(CoinBrush)がを選択します。
Prefabsのsizeを1にして、Element 0にプレハブを設定します。今回は、コインの画像からあらかじめCoinプレハブを作っておいたのでこれをブラシに設定します。
プレハブブラシで塗る
HierarchyでGridにタイルマップを用意して、それを選択します。以下画面中央の、Active Tilemapが選択されたものになります。この場合は、ItemTilemapになります。また、画面右下のブラシがCoinBrushになっていることを確認し、あとは、Sceneタブ画面で通常のブラシと同じように塗ることが可能です。
まとめ
プレハブ用のブラシを作成できるようになりました。プレハブだと、スクリプトで処理ができるので、OnTriggerEnter2Dでコイン取得後に削除などの処理をつくれます。またGameObject用のブラシもあるようです。
現時点では、2d-extrasを別途インストールしないといけませんが、Unityのバージョンが上がれば初期で対応されると思います。