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 void GetImageBytes(glTF gltf, IStorage storage) { if (IsAsset) { return; } var image = gltf.GetImageFromTextureIndex(m_textureIndex); if (string.IsNullOrEmpty(image.uri)) { // // use buffer view (GLB) // var byteSegment = gltf.GetViewBytes(image.bufferView); m_imageBytes = ToArray(byteSegment); m_textureName = !string.IsNullOrEmpty(image.name) ? image.name : string.Format("{0:00}#GLB", m_textureIndex); } else { m_imageBytes = ToArray(storage.Get(image.uri)); if (image.uri.StartsWith("data:")) { m_textureName = !string.IsNullOrEmpty(image.name) ? image.name : string.Format("{0:00}#Base64Embeded", m_textureIndex); } else { m_textureName = !string.IsNullOrEmpty(image.name) ? image.name : Path.GetFileNameWithoutExtension(image.uri); } } }
public TextureItem(glTF gltf, int index, UnityPath textureBase = default(UnityPath)) { m_textureIndex = index; var image = gltf.GetImageFromTextureIndex(m_textureIndex); #if UNITY_EDITOR if (!string.IsNullOrEmpty(image.uri) && !image.uri.StartsWith("data:") && textureBase.IsUnderAssetsFolder) { m_assetPath = textureBase.Child(image.uri); m_textureName = !string.IsNullOrEmpty(image.name) ? image.name : Path.GetFileNameWithoutExtension(image.uri); } #endif }
public TextureItem(glTF gltf, int index) { m_textureIndex = index; var image = gltf.GetImageFromTextureIndex(m_textureIndex); #if UNITY_EDITOR if (!string.IsNullOrEmpty(image.uri) && !image.uri.StartsWith("data:") && !string.IsNullOrEmpty(gltf.baseDir) && gltf.baseDir.StartsWith("Assets")) { m_assetPath = Path.Combine(gltf.baseDir, image.uri); m_textureName = !string.IsNullOrEmpty(image.name) ? image.name : Path.GetFileNameWithoutExtension(image.uri); } #endif }