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 { "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); } } }