Я пытался создать пользовательский инструмент для отображения мозаики, чтобы установить активную плитку в окне палитры плиток в Unity, но я не добился успеха. Я могу получить активную плитку в окне палитры плиток, используя свойство «только для чтения» в «clipboardView», но нет никакой возможности установить активную плитку.
Надеюсь, кто-нибудь подскажет мне правильный путь. Спасибо!
Код, который я использую здесь:
public void OpenPaletteWindow()
{
var assembly = Assembly.Load(new AssemblyName("UnityEditor"));
paletteWindowType = assembly.GetType("UnityEditor.GridPaintPaletteWindow");
paletteWindow = EditorWindow.GetWindow(paletteWindowType, false, "Tile Palette", false);
paletteWindow.Show();
}
private TileBase GetActiveBrushTile()
{
if (paletteWindowType == null || paletteWindow == null)
return null;
var clipboardViewProperty = paletteWindowType.GetProperty("clipboardView", BindingFlags.Instance | BindingFlags.Public);
var clipboardView = clipboardViewProperty.GetValue(paletteWindow, null);
var clipboardViewType = clipboardViewProperty.PropertyType;
var activeTileProperty = clipboardViewType.GetProperty("activeTile", BindingFlags.Instance | BindingFlags.Public);
return activeTileProperty.GetValue(clipboardView, null) as TileBase;
}