public void CreateTextureItems(UnityPath imageBaseDir = default(UnityPath)) { if (m_textures.Any()) { return; } for (int i = 0; i < GLTF.textures.Count; ++i) { TextureItem item = null; #if UNITY_EDITOR var image = GLTF.GetImageFromTextureIndex(i); if (imageBaseDir.IsUnderAssetsFolder && !string.IsNullOrEmpty(image.uri) && !image.uri.StartsWith("data:") ) { /// /// required SaveTexturesAsPng or SetTextureBaseDir /// var assetPath = imageBaseDir.Child(image.uri); var textureName = !string.IsNullOrEmpty(image.name) ? image.name : Path.GetFileNameWithoutExtension(image.uri); item = new TextureItem(i, assetPath, textureName); } else #endif { item = new TextureItem(i); } AddTexture(item); } }
public int CopyAndGetIndex(Texture texture, RenderTextureReadWrite readWrite) { if (texture == null) { return(-1); } var index = m_textures.IndexOf(texture); if (index == -1) { // ありえない? return(-1); } // ToDo: may already exists m_exportTextures[index] = TextureItem.CopyTexture(texture, readWrite, null); return(index); }
static BytesWithMime GetBytesWithMime(Texture texture, glTFTextureTypes textureType) { #if UNITY_EDITOR var path = UnityPath.FromAsset(texture); if (path.IsUnderAssetsFolder) { if (path.Extension == ".png") { return(new BytesWithMime { Bytes = System.IO.File.ReadAllBytes(path.FullPath), Mime = "image/png", }); } } #endif return(new BytesWithMime { Bytes = TextureItem.CopyTexture(texture, TextureIO.GetColorSpace(textureType), null).EncodeToPNG(), Mime = "image/png", }); }
public void AddTexture(TextureItem item) { m_textures.Add(item); }