public static APMovieTexture GetAPMovieTextureFromAssetGuid(string guid) { #if UNITY_5_6_OR_NEWER VideoClipImporter movieImporter = GetAssetImporterFromAssetGuid <VideoClipImporter>(guid); #else MovieImporter movieImporter = GetAssetImporterFromAssetGuid <MovieImporter>(guid); #endif Debug.Log(movieImporter); // if texture is render texture or others, tImporter will to set to null. // if (movieImporter == null) { return(null); } string path = AssetDatabase.GUIDToAssetPath(guid); if (string.IsNullOrEmpty(path)) { return(null); } #if UNITY_5_6_OR_NEWER var texture = AssetDatabase.LoadAssetAtPath(path, typeof(VideoClip)) as VideoClip; #else var texture = AssetDatabase.LoadAssetAtPath(path, typeof(MovieTexture)) as MovieTexture; #endif Debug.Log(texture); if (texture == null) { return(null); } APMovieTexture apMovieTexture = new APMovieTexture(); apMovieTexture.Icon = GetIconID(path); #if UNITY_5_6_OR_NEWER apMovieTexture.Size = (long)movieImporter.outputFileSize; double approx = 0; #else apMovieTexture.Size = TextureUtillity.GetStorageMemorySize(texture); double approx = (GetVideoBitrateForQuality(movieImporter.quality) + GetAudioBitrateForQuality(movieImporter.quality)) * movieImporter.duration / 8; #endif apMovieTexture.Approx = approx; apMovieTexture.Name = Utility.GetFileName(path); apMovieTexture.Path = path; apMovieTexture.Hash = Utility.GetFileMd5(path); apMovieTexture.Quality = movieImporter.quality; apMovieTexture.FileSize = Utility.GetFileSize(path); #if UNITY_5_6_OR_NEWER TimeSpan duration = TimeSpan.FromSeconds(texture.length); #else TimeSpan duration = TimeSpan.FromSeconds(texture.duration); #endif apMovieTexture.Duration = Utility.GetTimeDurationString(duration); apMovieTexture.Id = guid; UnloadAsset(texture); return(apMovieTexture); }
public static APTexture GetAPTextureFromAssetGuid(string guid) { string path = AssetDatabase.GUIDToAssetPath(guid); if (string.IsNullOrEmpty(path)) { return(null); } var texture = AssetDatabase.LoadAssetAtPath(path, typeof(UnityEngine.Object)); if (texture == null || texture is MovieTexture) { return(null); } APTexture apTexture = new APTexture(); apTexture.Icon = GetIconID(path); if (texture is RenderTexture) { var renderTexture = texture as RenderTexture; apTexture.StorageSize = TextureUtillity.GetStorageMemorySize(renderTexture); #if UNITY_5 && !UNITY_5_6 apTexture.RuntimeSize = Profiler.GetRuntimeMemorySize(renderTexture); #else apTexture.RuntimeSize = Profiler.GetRuntimeMemorySizeLong(renderTexture); #endif apTexture.Width = renderTexture.width; apTexture.Height = renderTexture.height; apTexture.TextureType = "Render"; apTexture.Path = path; apTexture.Hash = Utility.GetFileMd5(path); apTexture.Name = Utility.GetFileName(path); apTexture.FileSize = Utility.GetFileSize(path); apTexture.Id = guid; apTexture.Compress = "None"; UnloadAsset(texture); return(apTexture); } TextureImporter tImporter = GetAssetImporterFromAssetGuid <TextureImporter>(guid); if (tImporter == null) { return(null); } var tex = texture as Texture; #if UNITY_5_5_OR_NEWER TextureImporterCompression importerCompression = tImporter.textureCompression; #else TextureImporterFormat importerFormat = tImporter.textureFormat; #endif #if UNITY_5_5_OR_NEWER var platformSettings = tImporter.GetPlatformTextureSettings(Utility.BuildTargetToPlatform(EditorUserBuildSettings.activeBuildTarget)); apTexture.CompressionQuality = platformSettings.compressionQuality; apTexture.CrunchedCompression = platformSettings.crunchedCompression; apTexture.MaxSize = platformSettings.maxTextureSize; apTexture.Compress = GetCommonNameOfCompression(platformSettings.textureCompression.ToString()); #else int maxTextureSize = tImporter.maxTextureSize; int compressQuality = tImporter.compressionQuality; tImporter.GetPlatformTextureSettings(Utility.BuildTargetToPlatform(EditorUserBuildSettings.activeBuildTarget), out maxTextureSize, out importerFormat, out compressQuality); apTexture.MaxSize = maxTextureSize; apTexture.CompressionQuality = compressQuality; apTexture.CrunchedCompression = false; apTexture.Compress = GetCommonNameOfCompression(importerFormat.ToString()); #endif // Get texture settings for different platform // apTexture.StorageSize = TextureUtillity.GetStorageMemorySize(tex); apTexture.RuntimeSize = TextureUtillity.GetRuntimeMemorySize(tex); apTexture.Name = Utility.GetFileName(path); apTexture.ReadWrite = tImporter.isReadable; #if UNITY_5_5_OR_NEWER if ((int)platformSettings.format > 0) { apTexture.TextureFormat = platformSettings.format.ToString(); } else { apTexture.TextureFormat = "Auto"; } #else apTexture.TextureFormat = importerFormat.ToString(); #endif apTexture.TextureType = tImporter.textureType.ToString(); apTexture.Path = path; apTexture.Hash = Utility.GetFileMd5(path); apTexture.MipMap = tImporter.mipmapEnabled; apTexture.Width = tex.width; apTexture.Height = tex.height; apTexture.FileSize = Utility.GetFileSize(path); int widthInPixel = 0; int heightInPixel = 0; TextureUtillity.GetImageSize(texture as Texture2D, out widthInPixel, out heightInPixel); apTexture.WidthInPixel = widthInPixel; apTexture.HeightInPixel = heightInPixel; if (tImporter.textureType == TextureImporterType.Sprite) { apTexture.PackingTag = tImporter.spritePackingTag; } apTexture.Id = guid; UnloadAsset(texture); return(apTexture); }