50 lines
1.8 KiB
C#
50 lines
1.8 KiB
C#
#if UNITY_EDITOR
|
|
|
|
using UnityEngine;
|
|
using System.IO;
|
|
using UnityEditor;
|
|
using System;
|
|
|
|
namespace Quixel
|
|
{
|
|
public class MegascansTextureProcessor : MonoBehaviour
|
|
{
|
|
string sourcePath;
|
|
string destPath;
|
|
bool normalMap;
|
|
bool sRGB;
|
|
|
|
public MegascansTextureProcessor(string sourcePath, string destPath, bool normalMap = false, bool sRGB = true)
|
|
{
|
|
this.sourcePath = sourcePath;
|
|
this.destPath = destPath;
|
|
this.normalMap = normalMap;
|
|
this.sRGB = sRGB;
|
|
}
|
|
|
|
public Texture2D ImportTexture()
|
|
{
|
|
MegascansUtilities.CopyFileToProject(sourcePath, destPath);
|
|
TextureImporter tImp = AssetImporter.GetAtPath(destPath) as TextureImporter;
|
|
int importResolution = Convert.ToInt32(Math.Pow(2, 9 + EditorPrefs.GetInt("QuixelDefaultImportResolution", 4)));
|
|
tImp.maxTextureSize = importResolution;
|
|
tImp.sRGBTexture = sRGB;
|
|
tImp.textureType = normalMap ? TextureImporterType.NormalMap : TextureImporterType.Default;
|
|
AssetDatabase.ImportAsset(destPath);
|
|
AssetDatabase.Refresh();
|
|
return AssetDatabase.LoadAssetAtPath<Texture2D>(destPath);
|
|
}
|
|
|
|
public void AdjustAlphaCutoff(float alphaCutoff = 0.33f, bool alphaIsTransparency = true, bool mipMapsPreserveCoverage = true)
|
|
{
|
|
TextureImporter tImp = AssetImporter.GetAtPath(destPath) as TextureImporter;
|
|
tImp.mipMapsPreserveCoverage = mipMapsPreserveCoverage;
|
|
tImp.alphaIsTransparency = alphaIsTransparency;
|
|
tImp.alphaTestReferenceValue = alphaCutoff;
|
|
AssetDatabase.ImportAsset(destPath);
|
|
AssetDatabase.Refresh();
|
|
AssetDatabase.LoadAssetAtPath<Texture2D>(destPath);
|
|
}
|
|
}
|
|
}
|
|
#endif |