/// <summary> /// Extract をテスト /// </summary> /// <param name="gltf"></param> /// <param name="root"></param> static void EditorLoad(FileInfo gltf, int subStrStart) { GltfData data = null; try { data = new AutoGltfFileParser(gltf.FullName).Parse(); } catch (Exception ex) { Debug.LogError($"ParseError: {gltf}"); Debug.LogException(ex); } // should unique using (data) { var gltfTextures = new GltfTextureDescriptorGenerator(data).Get().GetEnumerable() .Select(x => x.SubAssetKey) .ToArray(); var distinct = gltfTextures.Distinct().ToArray(); Assert.True(gltfTextures.Length == distinct.Length); Assert.True(gltfTextures.SequenceEqual(distinct)); } }
public void TextureEnumerationTest() { { var data = CreateGltfData(TwoTexture()); var items = new GltfTextureDescriptorGenerator(data).Get().GetEnumerable().ToArray(); Assert.AreEqual(2, items.Length); } { var data = CreateGltfData(TwoTextureOneUri()); var items = new GltfTextureDescriptorGenerator(data).Get().GetEnumerable().ToArray(); Assert.AreEqual(1, items.Length); } { var data = CreateGltfData(TwoTextureOneImage()); var items = new GltfTextureDescriptorGenerator(data).Get().GetEnumerable().ToArray(); Assert.AreEqual(1, items.Length); } { var data = CreateGltfData(CombineMetallicSmoothOcclusion()); var items = new GltfTextureDescriptorGenerator(data).Get().GetEnumerable().ToArray(); Assert.AreEqual(1, items.Length); } }
public override void OnEnable() { base.OnEnable(); m_importer = target as ZipArchivedGltfScriptedImporter; m_data = new AutoGltfFileParser(m_importer.assetPath).Parse(); var materialGenerator = new GltfMaterialDescriptorGenerator(); var materialKeys = m_data.GLTF.materials.Select((_, i) => materialGenerator.Get(m_data, i).SubAssetKey); var textureKeys = new GltfTextureDescriptorGenerator(m_data).Get().GetEnumerable().Select(x => x.SubAssetKey); m_materialEditor = new RemapEditorMaterial(materialKeys.Concat(textureKeys), GetEditorMap, SetEditorMap); m_animationEditor = new RemapEditorAnimation(AnimationImporterUtil.EnumerateSubAssetKeys(m_data.GLTF), GetEditorMap, SetEditorMap); }
public ImporterContext( GltfData data, IReadOnlyDictionary <SubAssetKey, UnityEngine.Object> externalObjectMap = null, ITextureDeserializer textureDeserializer = null) { Data = data; TextureDescriptorGenerator = new GltfTextureDescriptorGenerator(Data); MaterialDescriptorGenerator = new GltfMaterialDescriptorGenerator(); ExternalObjectMap = externalObjectMap ?? new Dictionary <SubAssetKey, UnityEngine.Object>(); textureDeserializer = textureDeserializer ?? new UnityTextureDeserializer(); TextureFactory = new TextureFactory(textureDeserializer, ExternalObjectMap .Where(x => x.Value is Texture) .ToDictionary(x => x.Key, x => (Texture)x.Value), Data.MigrationFlags.IsRoughnessTextureValueSquared); MaterialFactory = new MaterialFactory(ExternalObjectMap .Where(x => x.Value is Material) .ToDictionary(x => x.Key, x => (Material)x.Value)); AnimationClipFactory = new AnimationClipFactory(ExternalObjectMap .Where(x => x.Value is AnimationClip) .ToDictionary(x => x.Key, x => (AnimationClip)x.Value)); }