ソースコード using UnityEngine; using UnityEngine.Tilemaps; public static class TilemapExtensions { public static void SetTile ( this Tilemap self, int x, int y, TileBase tile ) { self.SetTile( new Vector3Int( x, y, 0 ), tile ); } public s…
ソースコード using System.Collections.Generic; using UnityEngine; using UnityEngine.Tilemaps; public static class TilemapExtensions { public static IEnumerable<Vector3Int> GetPositions( this Tilemap self ) { var bound = self.cellBounds; for ( var x = </vector3int>…
概要 タイルマップの各タイルの当たり判定を結合したい場合は Tilemap Collider 2D を保持しているゲームオブジェクトに 「Rigidbody 2D」と「Composite Collider 2D」を Add Component して Rigidbody 2D の「Body Type」を「Dynamic」以外にして Tilemap C…
概要 TerrainTile は通常は当たり判定がスプライト状になりますが tileData.colliderType = Tile.ColliderType.Sprite; TerrainTile.cs 75 行目の上記の処理を tileData.colliderType = Tile.ColliderType.Grid; このように書き換えることで 当たり判定をグ…
はじめに 当ブログで紹介してきたタイルマップのエディタ拡張に関する記事をまとめました まとめ 自作したエディタ拡張 Inspector に Compress Bounds のボタンを追加 Inspector に Refresh All Tiles を実行するボタンを追加 すべてのタイルを上下左右にず…
ソースコード using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.Tilemaps; [CustomEditor( typeof( Tilemap ) )] public sealed class TilemapEditor : Editor { public override void OnInspectorGUI() { base…
ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…
ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…
ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…
ソースコード var tilemap = GameObject.FindObjectOfType<Tilemap>(); var bound = tilemap.cellBounds; for ( int y = bound.max.y - 1; y >= bound.min.y; --y ) { for ( int x = bound.min.x; x < bound.max.x; ++x ) { var pos = new Vector3Int( x, y, 0 ); // </tilemap>…
概要 using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.Tilemaps; [CustomEditor(typeof(Tilemap))] public sealed class TilemapEditor : Editor { public override void OnInspectorGUI() { base.OnInspector…
概要 using System.Linq; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine.SceneManagement; using UnityEngine.Tilemaps; [InitializeOnLoad] public static class AllTilesRefresher { static AllTilesRefresher() { EditorScen…
概要 using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; public static class Example { [MenuItem( "Tools/Log" )] private static void Log() { // 選択中のパレットを取得する Debug.Log( GridPaintingState.palette ); // 選択中のパ…
概要 using System; using System.Collections.Generic; using System.Reflection; using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; // Tile Palette で使用できるすべてのブラシを管理するクラス public static class GridPaletteBrush…
概要 using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { // Active Tilemap が変更された時に呼び出される GridPaintingState.scenePaintTargetChanged += OnChange…
ソースコード using System; using System.Reflection; using UnityEditor; public static class GridPaintPaletteWindowUtils { private const BindingFlags BINDING_ATTR = BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic; privat…
概要 Tilemap の Tile Palette は内部的には GridPaintPaletteWindow という EditorWindow で構成されています Unity エディタを開発者モードにすることで確認できます 関連記事
ソースコード using System; using System.Collections.Generic; using System.Reflection; using UnityEditor; using UnityEngine; public static class GridPaintingStateUtils { private const BindingFlags BINDING_ATTR = BindingFlags.Static | Bindin…
ソースコード using System; using System.Collections.Generic; using System.Reflection; using UnityEditor; using UnityEngine; public static class GridPaletteBrushesUtils { private const BindingFlags BINDING_ATTR = BindingFlags.Static | Bindi…
ソースコード using System; using System.Reflection; using UnityEditor; using UnityEngine; public static class EditorApplicationUtility { private const BindingFlags BINDING_ATTR = BindingFlags.Static | BindingFlags.Public; private static re…
ソースコード using System; using System.Reflection; using UnityEditor; using UnityEngine; public static class EditorApplicationUtility { private const BindingFlags BINDING_ATTR = BindingFlags.Static | BindingFlags.Public; private static re…
概要 Tilemap が複製された時は Tile Palette の Active Tilemap は変化しないですが using System.Reflection; using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.hierarchyChanged += OnChanged…
概要 using System.Reflection; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var assembly = typeof( AssetDatabase ).Assembly; var type = assembly.GetType( "UnityEditor.GridPaintingState" )…
ソースコード using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; public static class TilemapEditorUtils { [MenuItem( "CONTEXT/Grid/Clear All Tiles" )] private static void ClearAllTilesFromGrid( MenuCommand menuCommand ) { var…
概要 矩形ツールを選択した状態で Shift を押しながら左クリック&ドラッグすることで、タイルを矩形で削除することができます
はじめに 「SuperTiled2Unity」を Unity プロジェクトに導入することで Tiled Map Editor で作成したマップを Unity のタイルマップに変換できるようになります 使い方 Unity プロジェクトに タイルマップのファイル(.tmx) タイルセットのファイル(.tsx)…
はじめに ここでは、タイルマップの隙間が見えてちらつく時の対応方法を紹介していきます テクスチャの設定の見直し タイルマップで使用しているテクスチャを選択し、 「Filter Mode」を「Point (no filter)」に変更し、「Apply」ボタンを押します アンチエ…
はじめに この記事では、Unity 2017.2 から使用できるタイルマップの使い方をまとめました 基本 基本的な使い方 コンテキストメニュー 便利なタイル アニメーション付きのタイルを塗ることができる「Animated Tile」 パイプをつなぐようにタイルを塗ることが…
はじめに Unity のタイルマップでは、ブラシを自作することができます この記事では、ブラシを自作する方法を紹介していきます 作成方法 ブラシの作成はエディタ拡張となるため、 Unity プロジェクトの「Editor」フォルダ内にスクリプトを作成する必要があり…
はじめに Unity のタイルマップではブラシを自作することができます この記事では、3 x 3 マスのサイズのブラシを自作してみます 作り方 「Editor」フォルダに「BoldBrush」スクリプトを作成して、 上記のコードを貼り付けて保存します そして、TIle Palette…