67 lines
2.7 KiB
C#
67 lines
2.7 KiB
C#
using System.Collections.Generic;
|
|
using Unity.Properties;
|
|
using UnityEditor;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace Misaki.ArtToolEditor
|
|
{
|
|
internal class ExtractMaterialsVisualProvider : OptionsVisualProvider
|
|
{
|
|
public override void ContentAfterList(VisualElement rootVisualElement)
|
|
{
|
|
rootVisualElement.dataSource = processor;
|
|
|
|
var materialRemapOptionContainer = new VisualElement()
|
|
{
|
|
style =
|
|
{
|
|
display = DisplayStyle.None,
|
|
}
|
|
};
|
|
|
|
var useMaterialRemapField = new DropdownField("Use Material Remap", new List<string> { "False", "True" }, "False");
|
|
useMaterialRemapField.SetBinding(
|
|
nameof(DropdownField.index),
|
|
new DataBinding()
|
|
{
|
|
dataSourcePath = PropertyPath.FromName(nameof(ExtractMaterialsProcessor.useMaterialRemap))
|
|
});
|
|
useMaterialRemapField.RegisterValueChangedCallback(evt =>
|
|
{
|
|
materialRemapOptionContainer.style.display = evt.newValue == "True" ? DisplayStyle.Flex : DisplayStyle.None;
|
|
});
|
|
|
|
var materialLocationField = new EnumField("Location", ModelImporterMaterialLocation.External);
|
|
materialLocationField.SetBinding(
|
|
nameof(EnumField.value),
|
|
new DataBinding()
|
|
{
|
|
dataSourcePath = PropertyPath.FromName(nameof(ExtractMaterialsProcessor.materialLocation))
|
|
});
|
|
|
|
var materialRemapNamingOptionField = new EnumField("Naming Option", ModelImporterMaterialName.BasedOnTextureName);
|
|
materialRemapNamingOptionField.SetBinding(
|
|
nameof(EnumField.value),
|
|
new DataBinding()
|
|
{
|
|
dataSourcePath = PropertyPath.FromName(nameof(ExtractMaterialsProcessor.materialRemapNamingOption))
|
|
});
|
|
|
|
var materialRemapSearchOptionField = new EnumField("Search Option", ModelImporterMaterialSearch.Local);
|
|
materialRemapSearchOptionField.SetBinding(
|
|
nameof(EnumField.value),
|
|
new DataBinding()
|
|
{
|
|
dataSourcePath = PropertyPath.FromName(nameof(ExtractMaterialsProcessor.materialRemapSearchOption))
|
|
});
|
|
|
|
materialRemapOptionContainer.Add(materialLocationField);
|
|
materialRemapOptionContainer.Add(materialRemapNamingOptionField);
|
|
materialRemapOptionContainer.Add(materialRemapSearchOptionField);
|
|
|
|
rootVisualElement.Add(useMaterialRemapField);
|
|
rootVisualElement.Add(materialRemapOptionContainer);
|
|
}
|
|
}
|
|
}
|