Как мне установить активную плитку в окне палитры плиток через скрипт в Unity3D? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался создать пользовательский инструмент для отображения мозаики, чтобы установить активную плитку в окне палитры плиток в 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...