72 lines
2.4 KiB
C#
72 lines
2.4 KiB
C#
using AssetStoreTools.Previews.Data;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace AssetStoreTools.Previews.Utility
|
|
{
|
|
internal static class PreviewConvertUtility
|
|
{
|
|
public static string ConvertFilename(Object asset, FileNameFormat format)
|
|
{
|
|
string fileName = string.Empty;
|
|
|
|
switch (format)
|
|
{
|
|
case FileNameFormat.Guid:
|
|
AssetDatabase.TryGetGUIDAndLocalFileIdentifier(asset, out var guid, out long _);
|
|
fileName = guid;
|
|
break;
|
|
case FileNameFormat.FullAssetPath:
|
|
var assetPath = AssetDatabase.GetAssetPath(asset);
|
|
|
|
if (assetPath.StartsWith("Assets/"))
|
|
fileName = assetPath.Substring("Assets/".Length);
|
|
else if (assetPath.StartsWith("Packages/"))
|
|
fileName = assetPath.Substring("Packages/".Length);
|
|
|
|
fileName = fileName.Replace("/", "_");
|
|
break;
|
|
case FileNameFormat.AssetName:
|
|
fileName = asset.name;
|
|
break;
|
|
default:
|
|
throw new System.Exception("Undefined format");
|
|
}
|
|
|
|
return fileName;
|
|
}
|
|
|
|
public static string ConvertExtension(PreviewFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case PreviewFormat.JPG:
|
|
return "jpg";
|
|
case PreviewFormat.PNG:
|
|
return "png";
|
|
default:
|
|
throw new System.Exception("Undefined format");
|
|
}
|
|
}
|
|
|
|
public static string ConvertFilenameWithExtension(Object asset, FileNameFormat nameFormat, PreviewFormat imageFormat)
|
|
{
|
|
var filename = ConvertFilename(asset, nameFormat);
|
|
var extension = ConvertExtension(imageFormat);
|
|
return $"{filename}.{extension}";
|
|
}
|
|
|
|
public static byte[] ConvertTexture(Texture2D texture, PreviewFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case PreviewFormat.JPG:
|
|
return texture.EncodeToJPG();
|
|
case PreviewFormat.PNG:
|
|
return texture.EncodeToPNG();
|
|
default:
|
|
throw new System.Exception("Undefined format");
|
|
}
|
|
}
|
|
}
|
|
} |