mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-26 13:50:21 -04:00
Fixed some bugs
This commit is contained in:
parent
16ed347a30
commit
332e4cc6e2
@ -95,7 +95,7 @@ namespace Unity_Studio
|
|||||||
private static extern bool DecompressCRN(byte[] pSrc_file_data, int src_file_size, out IntPtr dxtdata, out int dxtsize);
|
private static extern bool DecompressCRN(byte[] pSrc_file_data, int src_file_size, out IntPtr dxtdata, out int dxtsize);
|
||||||
|
|
||||||
[DllImport("texgenpack.dll", CallingConvention = CallingConvention.Cdecl)]
|
[DllImport("texgenpack.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||||
private static extern bool texgenpackdecode(int texturetype, byte[] texturedata, int width, int height, IntPtr bmp, bool fixAlpha);
|
private static extern void texgenpackdecode(int texturetype, byte[] texturedata, int width, int height, IntPtr bmp, bool fixAlpha);
|
||||||
|
|
||||||
public Texture2D(AssetPreloadData preloadData, bool readSwitch)
|
public Texture2D(AssetPreloadData preloadData, bool readSwitch)
|
||||||
{
|
{
|
||||||
|
@ -273,14 +273,13 @@ namespace Unity_Studio
|
|||||||
private void readBase5()
|
private void readBase5()
|
||||||
{
|
{
|
||||||
int classID = a_Stream.ReadInt32();
|
int classID = a_Stream.ReadInt32();
|
||||||
if (fileGen > 15)
|
if (fileGen > 15)//5.5.0 and up
|
||||||
{
|
{
|
||||||
a_Stream.ReadByte();
|
a_Stream.ReadByte();
|
||||||
int type1;
|
int type1;
|
||||||
if ((type1 = a_Stream.ReadInt16()) >= 0)
|
if ((type1 = a_Stream.ReadInt16()) >= 0)
|
||||||
{
|
{
|
||||||
type1 = -1 - type1;
|
type1 = -1 - type1;
|
||||||
a_Stream.Position += 16;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -288,13 +287,21 @@ namespace Unity_Studio
|
|||||||
}
|
}
|
||||||
classIDs.Add(new[] { type1, classID });
|
classIDs.Add(new[] { type1, classID });
|
||||||
classID = type1;
|
classID = type1;
|
||||||
//TODO 某些文件出现type1=-1时还需要跳过16字节的情况
|
/*TODO 替换?
|
||||||
|
if(classID == 114)
|
||||||
|
{
|
||||||
|
a_Stream.Position += 16;
|
||||||
|
}*/
|
||||||
var temp = a_Stream.ReadInt32();
|
var temp = a_Stream.ReadInt32();
|
||||||
if (temp == 0)
|
if (temp == 0)
|
||||||
{
|
{
|
||||||
a_Stream.Position += 16;
|
a_Stream.Position += 16;
|
||||||
}
|
}
|
||||||
a_Stream.Position -= 4;
|
a_Stream.Position -= 4;
|
||||||
|
if (type1 < 0)
|
||||||
|
{
|
||||||
|
a_Stream.Position += 16;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (classID < 0)
|
else if (classID < 0)
|
||||||
{
|
{
|
||||||
|
@ -69,9 +69,9 @@ namespace Unity_Studio
|
|||||||
{
|
{
|
||||||
int bundleSize = b_Stream.ReadInt32();
|
int bundleSize = b_Stream.ReadInt32();
|
||||||
}
|
}
|
||||||
else
|
else if (format == 6)
|
||||||
{
|
{
|
||||||
long bundleSize = b_Stream.ReadInt64();
|
ReadFormat6(b_Stream, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
short dummy2 = b_Stream.ReadInt16();
|
short dummy2 = b_Stream.ReadInt16();
|
||||||
@ -117,118 +117,7 @@ namespace Unity_Studio
|
|||||||
versionEngine = b_Stream.ReadStringToNull();
|
versionEngine = b_Stream.ReadStringToNull();
|
||||||
if (format == 6)
|
if (format == 6)
|
||||||
{
|
{
|
||||||
var bundleSize = b_Stream.ReadInt64();
|
ReadFormat6(b_Stream);
|
||||||
int compressedSize = b_Stream.ReadInt32();
|
|
||||||
int uncompressedSize = b_Stream.ReadInt32();
|
|
||||||
int flag = b_Stream.ReadInt32();
|
|
||||||
byte[] blocksInfoBytes;
|
|
||||||
if ((flag & 0x80) != 0)//at end of file
|
|
||||||
{
|
|
||||||
var position = b_Stream.Position;
|
|
||||||
b_Stream.Position = b_Stream.BaseStream.Length - compressedSize;
|
|
||||||
blocksInfoBytes = b_Stream.ReadBytes(compressedSize);
|
|
||||||
b_Stream.Position = position;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
blocksInfoBytes = b_Stream.ReadBytes(compressedSize);
|
|
||||||
}
|
|
||||||
EndianStream blocksInfo;
|
|
||||||
switch (flag & 0x3F)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case 0://None
|
|
||||||
{
|
|
||||||
blocksInfo = new EndianStream(new MemoryStream(blocksInfoBytes), EndianType.BigEndian);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1://LZMA
|
|
||||||
{
|
|
||||||
blocksInfo = new EndianStream(SevenZip.Compression.LZMA.SevenZipHelper.StreamDecompress(new MemoryStream(blocksInfoBytes)), EndianType.BigEndian);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2://LZ4
|
|
||||||
case 3://LZ4HC
|
|
||||||
{
|
|
||||||
byte[] uncompressedBytes = new byte[uncompressedSize];
|
|
||||||
using (var mstream = new MemoryStream(blocksInfoBytes))
|
|
||||||
{
|
|
||||||
var decoder = new Lz4DecoderStream(mstream);
|
|
||||||
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
|
||||||
decoder.Dispose();
|
|
||||||
}
|
|
||||||
blocksInfo = new EndianStream(new MemoryStream(uncompressedBytes), EndianType.BigEndian);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//case 4:LZHAM?
|
|
||||||
}
|
|
||||||
using (blocksInfo)
|
|
||||||
{
|
|
||||||
blocksInfo.Position = 0x10;
|
|
||||||
int blockcount = blocksInfo.ReadInt32();
|
|
||||||
EndianStream assetsData;
|
|
||||||
var assetsDataStream = new MemoryStream();
|
|
||||||
for (int i = 0; i < blockcount; i++)
|
|
||||||
{
|
|
||||||
uncompressedSize = blocksInfo.ReadInt32();
|
|
||||||
compressedSize = blocksInfo.ReadInt32();
|
|
||||||
flag = blocksInfo.ReadInt16();
|
|
||||||
var compressedBytes = b_Stream.ReadBytes(compressedSize);
|
|
||||||
switch (flag & 0x3F)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case 0://None
|
|
||||||
{
|
|
||||||
assetsDataStream.Write(compressedBytes, 0, compressedSize);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1://LZMA
|
|
||||||
{
|
|
||||||
var uncompressedBytes = new byte[uncompressedSize];
|
|
||||||
using (var mstream = new MemoryStream(compressedBytes))
|
|
||||||
{
|
|
||||||
var decoder = SevenZip.Compression.LZMA.SevenZipHelper.StreamDecompress(mstream, uncompressedSize);
|
|
||||||
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
|
||||||
decoder.Dispose();
|
|
||||||
}
|
|
||||||
assetsDataStream.Write(uncompressedBytes, 0, uncompressedSize);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2://LZ4
|
|
||||||
case 3://LZ4HC
|
|
||||||
{
|
|
||||||
var uncompressedBytes = new byte[uncompressedSize];
|
|
||||||
using (var mstream = new MemoryStream(compressedBytes))
|
|
||||||
{
|
|
||||||
var decoder = new Lz4DecoderStream(mstream);
|
|
||||||
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
|
||||||
decoder.Dispose();
|
|
||||||
}
|
|
||||||
assetsDataStream.Write(uncompressedBytes, 0, uncompressedSize);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//case 4:LZHAM?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
assetsData = new EndianStream(assetsDataStream, EndianType.BigEndian);
|
|
||||||
using (assetsData)
|
|
||||||
{
|
|
||||||
var entryinfo_count = blocksInfo.ReadInt32();
|
|
||||||
for (int i = 0; i < entryinfo_count; i++)
|
|
||||||
{
|
|
||||||
var memFile = new MemoryAssetsFile();
|
|
||||||
var entryinfo_offset = blocksInfo.ReadInt64();
|
|
||||||
var entryinfo_size = blocksInfo.ReadInt64();
|
|
||||||
var unknown = blocksInfo.ReadInt32();
|
|
||||||
memFile.fileName = blocksInfo.ReadStringToNull();
|
|
||||||
assetsData.Position = entryinfo_offset;
|
|
||||||
var buffer = new byte[entryinfo_size];
|
|
||||||
assetsData.Read(buffer, 0, (int)entryinfo_size);
|
|
||||||
memFile.memStream = new MemoryStream(buffer);
|
|
||||||
MemoryAssetsFileList.Add(memFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -253,5 +142,123 @@ namespace Unity_Studio
|
|||||||
f_Stream.Position = nextFile;
|
f_Stream.Position = nextFile;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ReadFormat6(EndianStream b_Stream, bool padding = false)
|
||||||
|
{
|
||||||
|
var bundleSize = b_Stream.ReadInt64();
|
||||||
|
int compressedSize = b_Stream.ReadInt32();
|
||||||
|
int uncompressedSize = b_Stream.ReadInt32();
|
||||||
|
int flag = b_Stream.ReadInt32();
|
||||||
|
if (padding)
|
||||||
|
b_Stream.ReadByte();
|
||||||
|
byte[] blocksInfoBytes;
|
||||||
|
if ((flag & 0x80) != 0)//at end of file
|
||||||
|
{
|
||||||
|
var position = b_Stream.Position;
|
||||||
|
b_Stream.Position = b_Stream.BaseStream.Length - compressedSize;
|
||||||
|
blocksInfoBytes = b_Stream.ReadBytes(compressedSize);
|
||||||
|
b_Stream.Position = position;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
blocksInfoBytes = b_Stream.ReadBytes(compressedSize);
|
||||||
|
}
|
||||||
|
EndianStream blocksInfo;
|
||||||
|
switch (flag & 0x3F)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0://None
|
||||||
|
{
|
||||||
|
blocksInfo = new EndianStream(new MemoryStream(blocksInfoBytes), EndianType.BigEndian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 1://LZMA
|
||||||
|
{
|
||||||
|
blocksInfo = new EndianStream(SevenZip.Compression.LZMA.SevenZipHelper.StreamDecompress(new MemoryStream(blocksInfoBytes)), EndianType.BigEndian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2://LZ4
|
||||||
|
case 3://LZ4HC
|
||||||
|
{
|
||||||
|
byte[] uncompressedBytes = new byte[uncompressedSize];
|
||||||
|
using (var mstream = new MemoryStream(blocksInfoBytes))
|
||||||
|
{
|
||||||
|
var decoder = new Lz4DecoderStream(mstream);
|
||||||
|
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
||||||
|
decoder.Dispose();
|
||||||
|
}
|
||||||
|
blocksInfo = new EndianStream(new MemoryStream(uncompressedBytes), EndianType.BigEndian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//case 4:LZHAM?
|
||||||
|
}
|
||||||
|
using (blocksInfo)
|
||||||
|
{
|
||||||
|
blocksInfo.Position = 0x10;
|
||||||
|
int blockcount = blocksInfo.ReadInt32();
|
||||||
|
EndianStream assetsData;
|
||||||
|
var assetsDataStream = new MemoryStream();
|
||||||
|
for (int i = 0; i < blockcount; i++)
|
||||||
|
{
|
||||||
|
uncompressedSize = blocksInfo.ReadInt32();
|
||||||
|
compressedSize = blocksInfo.ReadInt32();
|
||||||
|
flag = blocksInfo.ReadInt16();
|
||||||
|
var compressedBytes = b_Stream.ReadBytes(compressedSize);
|
||||||
|
switch (flag & 0x3F)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0://None
|
||||||
|
{
|
||||||
|
assetsDataStream.Write(compressedBytes, 0, compressedSize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 1://LZMA
|
||||||
|
{
|
||||||
|
var uncompressedBytes = new byte[uncompressedSize];
|
||||||
|
using (var mstream = new MemoryStream(compressedBytes))
|
||||||
|
{
|
||||||
|
var decoder = SevenZip.Compression.LZMA.SevenZipHelper.StreamDecompress(mstream, uncompressedSize);
|
||||||
|
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
||||||
|
decoder.Dispose();
|
||||||
|
}
|
||||||
|
assetsDataStream.Write(uncompressedBytes, 0, uncompressedSize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2://LZ4
|
||||||
|
case 3://LZ4HC
|
||||||
|
{
|
||||||
|
var uncompressedBytes = new byte[uncompressedSize];
|
||||||
|
using (var mstream = new MemoryStream(compressedBytes))
|
||||||
|
{
|
||||||
|
var decoder = new Lz4DecoderStream(mstream);
|
||||||
|
decoder.Read(uncompressedBytes, 0, uncompressedSize);
|
||||||
|
decoder.Dispose();
|
||||||
|
}
|
||||||
|
assetsDataStream.Write(uncompressedBytes, 0, uncompressedSize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//case 4:LZHAM?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assetsData = new EndianStream(assetsDataStream, EndianType.BigEndian);
|
||||||
|
using (assetsData)
|
||||||
|
{
|
||||||
|
var entryinfo_count = blocksInfo.ReadInt32();
|
||||||
|
for (int i = 0; i < entryinfo_count; i++)
|
||||||
|
{
|
||||||
|
var memFile = new MemoryAssetsFile();
|
||||||
|
var entryinfo_offset = blocksInfo.ReadInt64();
|
||||||
|
var entryinfo_size = blocksInfo.ReadInt64();
|
||||||
|
var unknown = blocksInfo.ReadInt32();
|
||||||
|
memFile.fileName = blocksInfo.ReadStringToNull();
|
||||||
|
assetsData.Position = entryinfo_offset;
|
||||||
|
var buffer = new byte[entryinfo_size];
|
||||||
|
assetsData.Read(buffer, 0, (int)entryinfo_size);
|
||||||
|
memFile.memStream = new MemoryStream(buffer);
|
||||||
|
MemoryAssetsFileList.Add(memFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,7 @@ namespace Unity_Studio
|
|||||||
StatusStripUpdate("Extracting " + Path.GetFileName(memFile.fileName));
|
StatusStripUpdate("Extracting " + Path.GetFileName(memFile.fileName));
|
||||||
extractedCount += 1;
|
extractedCount += 1;
|
||||||
|
|
||||||
using (FileStream file = new FileStream(filePath, FileMode.Create, System.IO.FileAccess.Write))
|
using (FileStream file = new FileStream(filePath, FileMode.Create, FileAccess.Write))
|
||||||
{
|
{
|
||||||
memFile.memStream.WriteTo(file);
|
memFile.memStream.WriteTo(file);
|
||||||
memFile.memStream.Close();
|
memFile.memStream.Close();
|
||||||
@ -262,68 +262,68 @@ namespace Unity_Studio
|
|||||||
switch (asset.Type2)
|
switch (asset.Type2)
|
||||||
{
|
{
|
||||||
case 1: //GameObject
|
case 1: //GameObject
|
||||||
{
|
{
|
||||||
GameObject m_GameObject = new GameObject(asset);
|
GameObject m_GameObject = new GameObject(asset);
|
||||||
assetsFile.GameObjectList.Add(asset.m_PathID, m_GameObject);
|
assetsFile.GameObjectList.Add(asset.m_PathID, m_GameObject);
|
||||||
//totalTreeNodes++;
|
//totalTreeNodes++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 4: //Transform
|
case 4: //Transform
|
||||||
{
|
{
|
||||||
Transform m_Transform = new Transform(asset);
|
Transform m_Transform = new Transform(asset);
|
||||||
assetsFile.TransformList.Add(asset.m_PathID, m_Transform);
|
assetsFile.TransformList.Add(asset.m_PathID, m_Transform);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 224: //RectTransform
|
case 224: //RectTransform
|
||||||
{
|
{
|
||||||
RectTransform m_Rect = new RectTransform(asset);
|
RectTransform m_Rect = new RectTransform(asset);
|
||||||
assetsFile.TransformList.Add(asset.m_PathID, m_Rect.m_Transform);
|
assetsFile.TransformList.Add(asset.m_PathID, m_Rect.m_Transform);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//case 21: //Material
|
//case 21: //Material
|
||||||
case 28: //Texture2D
|
case 28: //Texture2D
|
||||||
{
|
{
|
||||||
Texture2D m_Texture2D = new Texture2D(asset, false);
|
Texture2D m_Texture2D = new Texture2D(asset, false);
|
||||||
exportable = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 48: //Shader
|
|
||||||
{
|
|
||||||
Shader m_Shader = new Shader(asset, false);
|
|
||||||
exportable = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 49: //TextAsset
|
|
||||||
{
|
|
||||||
TextAsset m_TextAsset = new TextAsset(asset, false);
|
|
||||||
exportable = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 83: //AudioClip
|
|
||||||
{
|
|
||||||
AudioClip m_AudioClip = new AudioClip(asset, false);
|
|
||||||
exportable = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 114: //MonoBehaviour
|
|
||||||
{
|
|
||||||
var m_MonoBehaviour = new MonoBehaviour(asset, false);
|
|
||||||
if (asset.Type1 != asset.Type2 && assetsFile.ClassStructures.ContainsKey(asset.Type1))
|
|
||||||
exportable = true;
|
exportable = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 48: //Shader
|
||||||
|
{
|
||||||
|
Shader m_Shader = new Shader(asset, false);
|
||||||
|
exportable = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 49: //TextAsset
|
||||||
|
{
|
||||||
|
TextAsset m_TextAsset = new TextAsset(asset, false);
|
||||||
|
exportable = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 83: //AudioClip
|
||||||
|
{
|
||||||
|
AudioClip m_AudioClip = new AudioClip(asset, false);
|
||||||
|
exportable = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 114: //MonoBehaviour
|
||||||
|
{
|
||||||
|
var m_MonoBehaviour = new MonoBehaviour(asset, false);
|
||||||
|
if (asset.Type1 != asset.Type2 && assetsFile.ClassStructures.ContainsKey(asset.Type1))
|
||||||
|
exportable = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 128: //Font
|
case 128: //Font
|
||||||
{
|
{
|
||||||
unityFont m_Font = new unityFont(asset, false);
|
unityFont m_Font = new unityFont(asset, false);
|
||||||
exportable = true;
|
exportable = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 129: //PlayerSettings
|
case 129: //PlayerSettings
|
||||||
{
|
{
|
||||||
var plSet = new PlayerSettings(asset);
|
var plSet = new PlayerSettings(asset);
|
||||||
productName = plSet.productName;
|
productName = plSet.productName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 21: //Material
|
case 21: //Material
|
||||||
case 43: //Mesh
|
case 43: //Mesh
|
||||||
case 74: //AnimationClip
|
case 74: //AnimationClip
|
||||||
@ -331,18 +331,18 @@ namespace Unity_Studio
|
|||||||
case 91: //AnimatorController
|
case 91: //AnimatorController
|
||||||
case 115: //MonoScript
|
case 115: //MonoScript
|
||||||
case 213: //Sprite
|
case 213: //Sprite
|
||||||
{
|
|
||||||
if (asset.Offset + 4 > asset.sourceFile.a_Stream.BaseStream.Length)
|
|
||||||
break;
|
|
||||||
asset.sourceFile.a_Stream.Position = asset.Offset;
|
|
||||||
var len = asset.sourceFile.a_Stream.ReadInt32();
|
|
||||||
if (len > 0 && len < asset.Size - 4)
|
|
||||||
{
|
{
|
||||||
var bytes = asset.sourceFile.a_Stream.ReadBytes(len);
|
if (asset.Offset + 4 > asset.sourceFile.a_Stream.BaseStream.Length)
|
||||||
asset.Text = Encoding.UTF8.GetString(bytes);
|
break;
|
||||||
|
asset.sourceFile.a_Stream.Position = asset.Offset;
|
||||||
|
var len = asset.sourceFile.a_Stream.ReadInt32();
|
||||||
|
if (len > 0 && len < asset.Size - 4)
|
||||||
|
{
|
||||||
|
var bytes = asset.sourceFile.a_Stream.ReadBytes(len);
|
||||||
|
asset.Text = Encoding.UTF8.GetString(bytes);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!exportable && displayAll)
|
if (!exportable && displayAll)
|
||||||
{
|
{
|
||||||
@ -351,7 +351,7 @@ namespace Unity_Studio
|
|||||||
asset.Text = asset.TypeString + " #" + asset.uniqueID;
|
asset.Text = asset.TypeString + " #" + asset.uniqueID;
|
||||||
}
|
}
|
||||||
asset.extension = ".dat";
|
asset.extension = ".dat";
|
||||||
asset.SubItems.AddRange(new[] {asset.TypeString, asset.Size.ToString()});
|
asset.SubItems.AddRange(new[] { asset.TypeString, asset.Size.ToString() });
|
||||||
exportable = true;
|
exportable = true;
|
||||||
}
|
}
|
||||||
if (exportable)
|
if (exportable)
|
||||||
@ -1612,7 +1612,7 @@ namespace Unity_Studio
|
|||||||
else if (ext == "JPEG")
|
else if (ext == "JPEG")
|
||||||
format = ImageFormat.Jpeg;
|
format = ImageFormat.Jpeg;
|
||||||
var exportFullName = exportPathName + asset.Text + "." + ext.ToLower();
|
var exportFullName = exportPathName + asset.Text + "." + ext.ToLower();
|
||||||
if (ExportFileExists(exportFullName, asset.TypeString))
|
if (ExportFileExists(exportFullName))
|
||||||
return false;
|
return false;
|
||||||
var bitmap = m_Texture2D.ConvertToBitmap(flip);
|
var bitmap = m_Texture2D.ConvertToBitmap(flip);
|
||||||
if (bitmap != null)
|
if (bitmap != null)
|
||||||
@ -1623,7 +1623,7 @@ namespace Unity_Studio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var exportFullName2 = exportPathName + asset.Text + asset.extension;
|
var exportFullName2 = exportPathName + asset.Text + asset.extension;
|
||||||
if (ExportFileExists(exportFullName2, asset.TypeString))
|
if (ExportFileExists(exportFullName2))
|
||||||
return false;
|
return false;
|
||||||
File.WriteAllBytes(exportFullName2, m_Texture2D.ConvertToContainer());
|
File.WriteAllBytes(exportFullName2, m_Texture2D.ConvertToContainer());
|
||||||
return true;
|
return true;
|
||||||
@ -1637,7 +1637,7 @@ namespace Unity_Studio
|
|||||||
exportFileextension = ".wav";
|
exportFileextension = ".wav";
|
||||||
}
|
}
|
||||||
var exportFullname = exportFilename + exportFileextension;
|
var exportFullname = exportFilename + exportFileextension;
|
||||||
if (ExportFileExists(exportFullname, "AudioClip"))
|
if (ExportFileExists(exportFullname))
|
||||||
return false;
|
return false;
|
||||||
var m_AudioClip = new AudioClip(asset, true);
|
var m_AudioClip = new AudioClip(asset, true);
|
||||||
if ((bool)Properties.Settings.Default["convertfsb"] && oldextension == ".fsb")
|
if ((bool)Properties.Settings.Default["convertfsb"] && oldextension == ".fsb")
|
||||||
@ -1733,7 +1733,7 @@ namespace Unity_Studio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ExportFileExists(string filename, string assetType)
|
public static bool ExportFileExists(string filename)
|
||||||
{
|
{
|
||||||
if (File.Exists(filename))
|
if (File.Exists(filename))
|
||||||
{
|
{
|
||||||
|
@ -1336,7 +1336,7 @@ namespace Unity_Studio
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 48:
|
case 48:
|
||||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
if (!ExportFileExists(exportpath + asset.Text + asset.extension))
|
||||||
{
|
{
|
||||||
ExportShader(new Shader(asset, true), exportpath + asset.Text + ".txt");
|
ExportShader(new Shader(asset, true), exportpath + asset.Text + ".txt");
|
||||||
exportedCount++;
|
exportedCount++;
|
||||||
@ -1344,7 +1344,7 @@ namespace Unity_Studio
|
|||||||
break;
|
break;
|
||||||
case 49:
|
case 49:
|
||||||
TextAsset m_TextAsset = new TextAsset(asset, true);
|
TextAsset m_TextAsset = new TextAsset(asset, true);
|
||||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
if (!ExportFileExists(exportpath + asset.Text + asset.extension))
|
||||||
{
|
{
|
||||||
ExportText(m_TextAsset, exportpath + asset.Text + asset.extension);
|
ExportText(m_TextAsset, exportpath + asset.Text + asset.extension);
|
||||||
exportedCount++;
|
exportedCount++;
|
||||||
@ -1352,7 +1352,7 @@ namespace Unity_Studio
|
|||||||
break;
|
break;
|
||||||
case 114:
|
case 114:
|
||||||
MonoBehaviour m_MonoBehaviour = new MonoBehaviour(asset, true);
|
MonoBehaviour m_MonoBehaviour = new MonoBehaviour(asset, true);
|
||||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
if (!ExportFileExists(exportpath + asset.Text + asset.extension))
|
||||||
{
|
{
|
||||||
ExportMonoBehaviour(m_MonoBehaviour, exportpath + asset.Text + asset.extension);
|
ExportMonoBehaviour(m_MonoBehaviour, exportpath + asset.Text + asset.extension);
|
||||||
exportedCount++;
|
exportedCount++;
|
||||||
@ -1360,14 +1360,14 @@ namespace Unity_Studio
|
|||||||
break;
|
break;
|
||||||
case 128:
|
case 128:
|
||||||
unityFont m_Font = new unityFont(asset, true);
|
unityFont m_Font = new unityFont(asset, true);
|
||||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
if (!ExportFileExists(exportpath + asset.Text + asset.extension))
|
||||||
{
|
{
|
||||||
ExportFont(m_Font, exportpath + asset.Text + asset.extension);
|
ExportFont(m_Font, exportpath + asset.Text + asset.extension);
|
||||||
exportedCount++;
|
exportedCount++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
if (!ExportFileExists(exportpath + asset.Text + asset.extension))
|
||||||
{
|
{
|
||||||
ExportRawFile(asset, exportpath + asset.Text + asset.extension);
|
ExportRawFile(asset, exportpath + asset.Text + asset.extension);
|
||||||
exportedCount++;
|
exportedCount++;
|
||||||
|
Loading…
Reference in New Issue
Block a user