mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-07-16 19:14:15 -04:00
support export MonoBehaviour
This commit is contained in:
@ -569,6 +569,7 @@ namespace Unity_Studio
|
||||
break;
|
||||
case 48:
|
||||
case 49:
|
||||
case 114:
|
||||
textPreviewBox.Visible = !textPreviewBox.Visible;
|
||||
break;
|
||||
case 128:
|
||||
@ -701,7 +702,7 @@ namespace Unity_Studio
|
||||
}
|
||||
case 48: //Shader
|
||||
{
|
||||
Shader m_TextAsset = new Shader(asset, false);
|
||||
Shader m_Shader = new Shader(asset, false);
|
||||
exportable = true;
|
||||
break;
|
||||
}
|
||||
@ -717,7 +718,13 @@ namespace Unity_Studio
|
||||
exportable = true;
|
||||
break;
|
||||
}
|
||||
//case 89: //CubeMap
|
||||
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
|
||||
{
|
||||
unityFont m_Font = new unityFont(asset, false);
|
||||
@ -730,19 +737,6 @@ namespace Unity_Studio
|
||||
productName = plSet.productName;
|
||||
break;
|
||||
}
|
||||
case 114: //MonoBehaviour
|
||||
{
|
||||
if (asset.Offset + 0x1c + 4 > asset.sourceFile.a_Stream.BaseStream.Length)
|
||||
break;
|
||||
asset.sourceFile.a_Stream.Position = asset.Offset + 0x1c;
|
||||
var len = asset.sourceFile.a_Stream.ReadInt32();
|
||||
if (len > 0 && len < asset.Size - 4 - 0x1c)
|
||||
{
|
||||
var bytes = asset.sourceFile.a_Stream.ReadBytes(len);
|
||||
asset.Text = Encoding.UTF8.GetString(bytes);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 21: //Material
|
||||
case 43: //Mesh
|
||||
case 74: //AnimationClip
|
||||
@ -1315,6 +1309,16 @@ namespace Unity_Studio
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region MonoBehaviour
|
||||
case 114:
|
||||
{
|
||||
MonoBehaviour m_MonoBehaviour = new MonoBehaviour(asset, true);
|
||||
textPreviewBox.Text = m_MonoBehaviour.serializedText;
|
||||
textPreviewBox.Visible = true;
|
||||
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
#region Font
|
||||
case 128: //Font
|
||||
{
|
||||
@ -3144,7 +3148,7 @@ namespace Unity_Studio
|
||||
}
|
||||
break;
|
||||
case 48:
|
||||
if (!ExportFileExists(exportpath + asset.Text + ".txt", asset.TypeString))
|
||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
||||
{
|
||||
ExportShader(new Shader(asset, true), exportpath + asset.Text + ".txt");
|
||||
exportedCount++;
|
||||
@ -3158,6 +3162,14 @@ namespace Unity_Studio
|
||||
exportedCount++;
|
||||
}
|
||||
break;
|
||||
case 114:
|
||||
MonoBehaviour m_MonoBehaviour = new MonoBehaviour(asset, true);
|
||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
||||
{
|
||||
ExportMonoBehaviour(m_MonoBehaviour, exportpath + asset.Text + asset.extension);
|
||||
exportedCount++;
|
||||
}
|
||||
break;
|
||||
case 128:
|
||||
unityFont m_Font = new unityFont(asset, true);
|
||||
if (!ExportFileExists(exportpath + asset.Text + asset.extension, asset.TypeString))
|
||||
@ -3395,6 +3407,11 @@ namespace Unity_Studio
|
||||
return true;
|
||||
}
|
||||
|
||||
private void ExportMonoBehaviour(MonoBehaviour m_MonoBehaviour, string exportFilename)
|
||||
{
|
||||
File.WriteAllText(exportFilename, m_MonoBehaviour.serializedText);
|
||||
}
|
||||
|
||||
private void ExportShader(Shader m_Shader, string exportFilename)
|
||||
{
|
||||
File.WriteAllBytes(exportFilename, m_Shader.m_Script);
|
||||
|
Reference in New Issue
Block a user