コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Tilemap で Tile Palette の Active Tilemap をスクリプトから変更する方法

概要

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" );
        var property = type.GetProperty( "scenePaintTarget", BindingFlags.Public | BindingFlags.Static );

        // 第2引数で Active Tilemap に設定したいゲームオブジェクトを指定する
        property.SetValue( type, Selection.activeGameObject );
    }
}

上記のようなコードを記述することで

f:id:baba_s:20190928135749p:plain

Tile Palette の Active Tilemap をスクリプトから変更できます