remove redundent plugins directory
This commit is contained in:
parent
a86af44bc4
commit
6f04ce9d9e
@ -1,134 +0,0 @@
|
||||
using System;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
|
||||
public class KSPTextureTools : AssetPostprocessor
|
||||
{
|
||||
// what file type to allow
|
||||
private const string EXTENSION = ".png";
|
||||
|
||||
|
||||
/* SPECULAR */
|
||||
// enable specular map copying
|
||||
private const bool SPEC_ENABLE = true;
|
||||
|
||||
// what the file name should end with for specular maps
|
||||
private const string SPEC_TAG = "-spec";
|
||||
|
||||
|
||||
/* NORMALS */
|
||||
// enable normal map processing
|
||||
private const bool NORMAL_ENABLE = true;
|
||||
|
||||
// what the file name should end with for normal maps
|
||||
private const string NORMAL_TAG = "-n";
|
||||
|
||||
// enable normal map generation from heightmaps
|
||||
private const bool NORMAL_GENERATE = true;
|
||||
|
||||
|
||||
|
||||
private Texture2D _otherTexture = null;
|
||||
private bool _isSpecular = false;
|
||||
private bool _hasSpecular = false;
|
||||
|
||||
void OnPreprocessTexture()
|
||||
{
|
||||
var importer = (TextureImporter) assetImporter;
|
||||
importer.textureCompression = TextureImporterCompression.Uncompressed;
|
||||
importer.isReadable = true;
|
||||
|
||||
var extension = Path.GetExtension(assetPath);
|
||||
if (extension != EXTENSION) return;
|
||||
|
||||
var basename = Path.GetFileNameWithoutExtension(assetPath);
|
||||
var directory = Path.GetDirectoryName(assetPath);
|
||||
|
||||
if (NORMAL_ENABLE)
|
||||
{
|
||||
if (basename.EndsWith(NORMAL_TAG))
|
||||
{
|
||||
importer.textureType = TextureImporterType.NormalMap;
|
||||
if (NORMAL_GENERATE) importer.convertToNormalmap = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (SPEC_ENABLE) {
|
||||
if (basename.EndsWith(SPEC_TAG))
|
||||
{
|
||||
var othername = basename.Replace(SPEC_TAG, "");
|
||||
var otherpath = directory + "/" + othername + extension;
|
||||
_otherTexture = (Texture2D) AssetDatabase.LoadAssetAtPath<Texture2D>(otherpath);
|
||||
if (_otherTexture == null)
|
||||
{
|
||||
LogError("Diffuse file " + otherpath + " not found. Aborting");
|
||||
return;
|
||||
}
|
||||
|
||||
_isSpecular = true;
|
||||
_hasSpecular = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var othername = basename + SPEC_TAG;
|
||||
var otherpath = directory + "/" + othername + extension;
|
||||
_otherTexture = (Texture2D) AssetDatabase.LoadAssetAtPath<Texture2D>(otherpath);
|
||||
if (_otherTexture == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_hasSpecular = true;
|
||||
importer.alphaSource = TextureImporterAlphaSource.FromGrayScale;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnPostprocessTexture(Texture2D texture)
|
||||
{
|
||||
|
||||
if (_isSpecular)
|
||||
{
|
||||
CopyAlphaChannel(texture, _otherTexture);
|
||||
return;
|
||||
}
|
||||
|
||||
if (_hasSpecular)
|
||||
{
|
||||
CopyAlphaChannel(_otherTexture, texture);
|
||||
return;
|
||||
}
|
||||
AssetDatabase.SaveAssets();
|
||||
}
|
||||
|
||||
private void CopyAlphaChannel(Texture2D source, Texture2D target)
|
||||
{
|
||||
var width = source.width;
|
||||
var height = source.height;
|
||||
var depth = source.mipmapCount;
|
||||
|
||||
if (width != target.width || height != target.height)
|
||||
{
|
||||
LogError("Specular and Diffuse texture sizes to not match in texture " + assetPath);
|
||||
return;
|
||||
}
|
||||
|
||||
for (int level = 0; level < depth; level++)
|
||||
{
|
||||
var sourcePixels = source.GetPixels32(level);
|
||||
var targetPixels = target.GetPixels32(level);
|
||||
|
||||
var length = sourcePixels.Length;
|
||||
|
||||
for (var i = 0; i < length; i++)
|
||||
{
|
||||
targetPixels[i].a = sourcePixels[i].r;
|
||||
}
|
||||
|
||||
target.SetPixels32(targetPixels, level);
|
||||
}
|
||||
|
||||
target.Apply();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user