コガネブログ

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

【Unity】Unity 2019.2 以降なら Tilemap の Tile Palette の Active Tilemap をスクリプトから取得・設定できる

概要

using UnityEditor;
using UnityEditor.Tilemaps;
using UnityEngine;

[InitializeOnLoad]
public static class Example
{
    static Example()
    {
        // Active Tilemap が変更された時に呼び出される
        GridPaintingState.scenePaintTargetChanged += OnChanged;
    }

    [MenuItem( "Tools/Log" )]
    private static void Log()
    {
        // Active Tilemap を取得する
        Debug.Log( GridPaintingState.scenePaintTarget );
        
        // Active Tilemap を変更する
        GridPaintingState.scenePaintTarget = Selection.activeGameObject;
    }

    private static void OnChanged( GameObject gameObject )
    {
        Debug.Log( gameObject.name );
    }
}
  • GridPaintingState.scenePaintTargetChanged
    • Active Tilemap が変更された時に呼び出される
  • GridPaintingState.scenePaintTarget
    • Active Tilemap を取得・設定できる

f:id:baba_s:20190929141546p:plain

参考サイト様

https://forum.unity.com/threads/2d-tilemap-change-the-active-tilemap-by-script.577012/