static private void CreateTextureAsset(VrmLib.Model model, ModelAsset modelAsset, IExternalUnityObject scriptedImporter) { var externalObjects = scriptedImporter.GetExternalUnityObjects <Texture2D>(); // textures for (int i = 0; i < model.Textures.Count; ++i) { if (model.Textures[i] is VrmLib.ImageTexture imageTexture) { if (string.IsNullOrEmpty(model.Textures[i].Name)) { model.Textures[i].Name = string.Format("{0}_img{1}", model.Root.Name, i); } if (externalObjects.ContainsKey(model.Textures[i].Name)) { modelAsset.Map.Textures.Add(imageTexture, externalObjects[model.Textures[i].Name]); modelAsset.Textures.Add(externalObjects[model.Textures[i].Name]); } else { var name = !string.IsNullOrEmpty(imageTexture.Name) ? imageTexture.Name : string.Format("{0}_img{1}", model.Root.Name, i); var texture = RuntimeUnityBuilder.CreateTexture(imageTexture); texture.name = name; modelAsset.Map.Textures.Add(imageTexture, texture); modelAsset.Textures.Add(texture); } } else { Debug.LogWarning($"{i} not ImageTexture"); } } }