概要
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEditor.Tilemaps;
using UnityEngine;
public static class GridPaletteBrushesUtils
{
private const BindingFlags BINDING_ATTR = BindingFlags.Static | BindingFlags.Public;
private static readonly Assembly m_assembly = typeof( GridPaintingState ).Assembly;
private static readonly Type m_type = m_assembly.GetType( "UnityEditor.Tilemaps.GridPaletteBrushes" );
private static readonly PropertyInfo m_property = m_type.GetProperty( "brushes", BINDING_ATTR );
public static List<GridBrushBase> brushes => m_property.GetValue( null ) as List<GridBrushBase>;
}
[InitializeOnLoad]
public static class Example
{
static Example()
{
GridPaintingState.brushChanged += OnChanged;
}
[MenuItem( "Tools/Log" )]
private static void Log()
{
Debug.Log( GridPaintingState.gridBrush );
var brushes = GridPaletteBrushesUtils.brushes;
var brush = brushes.Find( c => c.name.Contains( "Line Brush" ) );
GridPaintingState.gridBrush = brush;
}
private static void OnChanged( GridBrushBase brush )
{
Debug.Log( brush.name );
}
}
- GridPaintingState.brushChanged
- GridPaintingState.gridBrush
参考サイト様