// SPDX-FileCopyrightText: 2023 Unity Technologies and the glTFast authors // SPDX-License-Identifier: Apache-2.0 #if !GLTFAST_EDITOR_IMPORT_OFF using System; using System.Collections.Generic; using System.IO; using GLTFast.Editor; using UnityEditor; using UnityEditor.AssetImporters; using UnityEditor.UIElements; using UnityEngine; using UnityEngine.UIElements; namespace GLTFast { using Logging; [CustomEditor(typeof(GltfImporter))] // [CanEditMultipleObjects] class GltfImporterEditor : ScriptedImporterEditor { // To be assigned defaults from the inspector [SerializeField] VisualTreeAsset mainMarkup; // Editor/UI/GltfImporter.uxml [SerializeField] VisualTreeAsset reportItemMarkup; // Editor/UI/ReportItem.uxml [SerializeField] VisualTreeAsset dependencyMarkup; // Editor/UI/Dependency.uxml SerializedProperty m_AssetDependencies; SerializedProperty m_ReportItems; public override void OnEnable() { base.OnEnable(); m_AssetDependencies = serializedObject.FindProperty("assetDependencies"); m_ReportItems = serializedObject.FindProperty("reportItems"); } public override VisualElement CreateInspectorGUI() { // Update the serializedObject in case it has been changed outside the Inspector. serializedObject.Update(); var root = new VisualElement(); mainMarkup.CloneTree(root); var numDeps = m_AssetDependencies.arraySize; var maliciousTextureImporters = new List(); var reportItemCount = m_ReportItems.arraySize; #if !UNITY_ANIMATION var animRoot = root.Query(name: "Animation").First(); animRoot.SetEnabled(false); #endif var reportRoot = root.Query(name: "Report").First(); if (reportItemCount > 0) { // var reportList = new List var reportList = reportRoot.Query().First(); // reportList.bindingPath = nameof(m_ReportItems); reportList.makeItem = () => reportItemMarkup.CloneTree(); reportList.bindItem = (element, i) => { if (i >= reportItemCount) { element.style.display = DisplayStyle.None; return; } var msg = element.Q