improve export

This commit is contained in:
Perfare 2020-03-26 01:01:02 +08:00
parent ea461ee3d2
commit 2bcd9662be
9 changed files with 175 additions and 145 deletions

View File

@ -41,8 +41,6 @@
this.displayAll = new System.Windows.Forms.ToolStripMenuItem(); this.displayAll = new System.Windows.Forms.ToolStripMenuItem();
this.enablePreview = new System.Windows.Forms.ToolStripMenuItem(); this.enablePreview = new System.Windows.Forms.ToolStripMenuItem();
this.displayInfo = new System.Windows.Forms.ToolStripMenuItem(); this.displayInfo = new System.Windows.Forms.ToolStripMenuItem();
this.openAfterExport = new System.Windows.Forms.ToolStripMenuItem();
this.assetGroupOptions = new System.Windows.Forms.ToolStripComboBox();
this.showExpOpt = new System.Windows.Forms.ToolStripMenuItem(); this.showExpOpt = new System.Windows.Forms.ToolStripMenuItem();
this.modelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.modelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportAllObjectssplitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.exportAllObjectssplitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
@ -206,8 +204,6 @@
this.displayAll, this.displayAll,
this.enablePreview, this.enablePreview,
this.displayInfo, this.displayInfo,
this.openAfterExport,
this.assetGroupOptions,
this.showExpOpt}); this.showExpOpt});
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(66, 21); this.optionsToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
@ -217,11 +213,11 @@
// //
this.displayAll.CheckOnClick = true; this.displayAll.CheckOnClick = true;
this.displayAll.Name = "displayAll"; this.displayAll.Name = "displayAll";
this.displayAll.Size = new System.Drawing.Size(252, 22); this.displayAll.Size = new System.Drawing.Size(223, 22);
this.displayAll.Text = "Display all assets"; this.displayAll.Text = "Display all assets";
this.displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can expor" + this.displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can expor" +
"t the RAW file."; "t the RAW file.";
this.displayAll.CheckedChanged += new System.EventHandler(this.MenuItem_CheckedChanged); this.displayAll.CheckedChanged += new System.EventHandler(this.displayAll_CheckedChanged);
// //
// enablePreview // enablePreview
// //
@ -229,7 +225,7 @@
this.enablePreview.CheckOnClick = true; this.enablePreview.CheckOnClick = true;
this.enablePreview.CheckState = System.Windows.Forms.CheckState.Checked; this.enablePreview.CheckState = System.Windows.Forms.CheckState.Checked;
this.enablePreview.Name = "enablePreview"; this.enablePreview.Name = "enablePreview";
this.enablePreview.Size = new System.Drawing.Size(252, 22); this.enablePreview.Size = new System.Drawing.Size(223, 22);
this.enablePreview.Text = "Enable preview"; this.enablePreview.Text = "Enable preview";
this.enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, " + this.enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, " +
"etc.\r\nDisable preview if you have performance or compatibility issues."; "etc.\r\nDisable preview if you have performance or compatibility issues.";
@ -241,38 +237,16 @@
this.displayInfo.CheckOnClick = true; this.displayInfo.CheckOnClick = true;
this.displayInfo.CheckState = System.Windows.Forms.CheckState.Checked; this.displayInfo.CheckState = System.Windows.Forms.CheckState.Checked;
this.displayInfo.Name = "displayInfo"; this.displayInfo.Name = "displayInfo";
this.displayInfo.Size = new System.Drawing.Size(252, 22); this.displayInfo.Size = new System.Drawing.Size(223, 22);
this.displayInfo.Text = "Display asset infromation"; this.displayInfo.Text = "Display asset infromation";
this.displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, forma" + this.displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, forma" +
"t, audio bitrate, etc."; "t, audio bitrate, etc.";
this.displayInfo.CheckedChanged += new System.EventHandler(this.displayAssetInfo_Check); this.displayInfo.CheckedChanged += new System.EventHandler(this.displayAssetInfo_Check);
// //
// openAfterExport
//
this.openAfterExport.Checked = true;
this.openAfterExport.CheckOnClick = true;
this.openAfterExport.CheckState = System.Windows.Forms.CheckState.Checked;
this.openAfterExport.Name = "openAfterExport";
this.openAfterExport.Size = new System.Drawing.Size(252, 22);
this.openAfterExport.Text = "Open file/folder after export";
this.openAfterExport.CheckedChanged += new System.EventHandler(this.MenuItem_CheckedChanged);
//
// assetGroupOptions
//
this.assetGroupOptions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.assetGroupOptions.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.assetGroupOptions.Items.AddRange(new object[] {
"Group by type",
"Group by source file",
"Do not group"});
this.assetGroupOptions.Name = "assetGroupOptions";
this.assetGroupOptions.Size = new System.Drawing.Size(192, 25);
this.assetGroupOptions.SelectedIndexChanged += new System.EventHandler(this.assetGroupOptions_SelectedIndexChanged);
//
// showExpOpt // showExpOpt
// //
this.showExpOpt.Name = "showExpOpt"; this.showExpOpt.Name = "showExpOpt";
this.showExpOpt.Size = new System.Drawing.Size(252, 22); this.showExpOpt.Size = new System.Drawing.Size(223, 22);
this.showExpOpt.Text = "Export options"; this.showExpOpt.Text = "Export options";
this.showExpOpt.Click += new System.EventHandler(this.showExpOpt_Click); this.showExpOpt.Click += new System.EventHandler(this.showExpOpt_Click);
// //
@ -1102,8 +1076,6 @@
private System.Windows.Forms.ToolStripMenuItem extractFolderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem extractFolderToolStripMenuItem;
private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.SaveFileDialog saveFileDialog1; private System.Windows.Forms.SaveFileDialog saveFileDialog1;
private System.Windows.Forms.ToolStripComboBox assetGroupOptions;
private System.Windows.Forms.ToolStripMenuItem openAfterExport;
private System.Windows.Forms.ToolStripMenuItem showExpOpt; private System.Windows.Forms.ToolStripMenuItem showExpOpt;
private GOHierarchy sceneTreeView; private GOHierarchy sceneTreeView;
private System.Windows.Forms.ToolStripMenuItem debugMenuItem; private System.Windows.Forms.ToolStripMenuItem debugMenuItem;

View File

@ -307,7 +307,7 @@ namespace AssetStudioGUI
if (dirty) if (dirty)
{ {
PreviewAsset(lastLoadedAsset); PreviewAsset(lastLoadedAsset);
if (assetInfoLabel.Text != null) if (lastSelectedItem != null && assetInfoLabel.Text != null)
{ {
assetInfoLabel.Text = lastSelectedItem.InfoText; assetInfoLabel.Text = lastSelectedItem.InfoText;
} }
@ -356,6 +356,12 @@ namespace AssetStudioGUI
} }
} }
private void displayAll_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.displayAll = displayAll.Checked;
Properties.Settings.Default.Save();
}
private void enablePreview_Check(object sender, EventArgs e) private void enablePreview_Check(object sender, EventArgs e)
{ {
if (lastLoadedAsset != null) if (lastLoadedAsset != null)
@ -433,18 +439,6 @@ namespace AssetStudioGUI
Properties.Settings.Default.Save(); Properties.Settings.Default.Save();
} }
private void MenuItem_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default[((ToolStripMenuItem)sender).Name] = ((ToolStripMenuItem)sender).Checked;
Properties.Settings.Default.Save();
}
private void assetGroupOptions_SelectedIndexChanged(object sender, EventArgs e)
{
Properties.Settings.Default.assetGroupOption = ((ToolStripComboBox)sender).SelectedIndex;
Properties.Settings.Default.Save();
}
private void showExpOpt_Click(object sender, EventArgs e) private void showExpOpt_Click(object sender, EventArgs e)
{ {
ExportOptions exportOpt = new ExportOptions(); ExportOptions exportOpt = new ExportOptions();
@ -1480,8 +1474,6 @@ namespace AssetStudioGUI
displayAll.Checked = Properties.Settings.Default.displayAll; displayAll.Checked = Properties.Settings.Default.displayAll;
displayInfo.Checked = Properties.Settings.Default.displayInfo; displayInfo.Checked = Properties.Settings.Default.displayInfo;
enablePreview.Checked = Properties.Settings.Default.enablePreview; enablePreview.Checked = Properties.Settings.Default.enablePreview;
openAfterExport.Checked = Properties.Settings.Default.openAfterExport;
assetGroupOptions.SelectedIndex = Properties.Settings.Default.assetGroupOption;
FMODinit(); FMODinit();
Logger.Default = new GUILogger(StatusStripUpdate); Logger.Default = new GUILogger(StatusStripUpdate);

View File

@ -31,6 +31,10 @@
this.OKbutton = new System.Windows.Forms.Button(); this.OKbutton = new System.Windows.Forms.Button();
this.Cancel = new System.Windows.Forms.Button(); this.Cancel = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.openAfterExport = new System.Windows.Forms.CheckBox();
this.restoreExtensionName = new System.Windows.Forms.CheckBox();
this.assetGroupOptions = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.convertAudio = new System.Windows.Forms.CheckBox(); this.convertAudio = new System.Windows.Forms.CheckBox();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.totga = new System.Windows.Forms.RadioButton(); this.totga = new System.Windows.Forms.RadioButton();
@ -65,7 +69,7 @@
// //
// OKbutton // OKbutton
// //
this.OKbutton.Location = new System.Drawing.Point(321, 293); this.OKbutton.Location = new System.Drawing.Point(308, 320);
this.OKbutton.Name = "OKbutton"; this.OKbutton.Name = "OKbutton";
this.OKbutton.Size = new System.Drawing.Size(75, 21); this.OKbutton.Size = new System.Drawing.Size(75, 21);
this.OKbutton.TabIndex = 6; this.OKbutton.TabIndex = 6;
@ -76,7 +80,7 @@
// Cancel // Cancel
// //
this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Cancel.Location = new System.Drawing.Point(402, 293); this.Cancel.Location = new System.Drawing.Point(389, 320);
this.Cancel.Name = "Cancel"; this.Cancel.Name = "Cancel";
this.Cancel.Size = new System.Drawing.Size(75, 21); this.Cancel.Size = new System.Drawing.Size(75, 21);
this.Cancel.TabIndex = 7; this.Cancel.TabIndex = 7;
@ -87,22 +91,73 @@
// groupBox1 // groupBox1
// //
this.groupBox1.AutoSize = true; this.groupBox1.AutoSize = true;
this.groupBox1.Controls.Add(this.openAfterExport);
this.groupBox1.Controls.Add(this.restoreExtensionName);
this.groupBox1.Controls.Add(this.assetGroupOptions);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.convertAudio); this.groupBox1.Controls.Add(this.convertAudio);
this.groupBox1.Controls.Add(this.panel1); this.groupBox1.Controls.Add(this.panel1);
this.groupBox1.Controls.Add(this.converttexture); this.groupBox1.Controls.Add(this.converttexture);
this.groupBox1.Location = new System.Drawing.Point(232, 12); this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(245, 114); this.groupBox1.Size = new System.Drawing.Size(232, 302);
this.groupBox1.TabIndex = 9; this.groupBox1.TabIndex = 9;
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.groupBox1.Text = "Convert"; this.groupBox1.Text = "Export";
//
// openAfterExport
//
this.openAfterExport.AutoSize = true;
this.openAfterExport.Checked = true;
this.openAfterExport.CheckState = System.Windows.Forms.CheckState.Checked;
this.openAfterExport.Location = new System.Drawing.Point(6, 160);
this.openAfterExport.Name = "openAfterExport";
this.openAfterExport.Size = new System.Drawing.Size(168, 16);
this.openAfterExport.TabIndex = 10;
this.openAfterExport.Text = "Open folder after export";
this.openAfterExport.UseVisualStyleBackColor = true;
//
// restoreExtensionName
//
this.restoreExtensionName.AutoSize = true;
this.restoreExtensionName.Checked = true;
this.restoreExtensionName.CheckState = System.Windows.Forms.CheckState.Checked;
this.restoreExtensionName.Location = new System.Drawing.Point(6, 58);
this.restoreExtensionName.Name = "restoreExtensionName";
this.restoreExtensionName.Size = new System.Drawing.Size(216, 16);
this.restoreExtensionName.TabIndex = 9;
this.restoreExtensionName.Text = "Restore TextAsset extension name";
this.restoreExtensionName.UseVisualStyleBackColor = true;
//
// assetGroupOptions
//
this.assetGroupOptions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.assetGroupOptions.FormattingEnabled = true;
this.assetGroupOptions.Items.AddRange(new object[] {
"type name",
"container path",
"source file name",
"do not group"});
this.assetGroupOptions.Location = new System.Drawing.Point(6, 32);
this.assetGroupOptions.Name = "assetGroupOptions";
this.assetGroupOptions.Size = new System.Drawing.Size(149, 20);
this.assetGroupOptions.TabIndex = 8;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(6, 17);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(149, 12);
this.label6.TabIndex = 7;
this.label6.Text = "Group exported assets by";
// //
// convertAudio // convertAudio
// //
this.convertAudio.AutoSize = true; this.convertAudio.AutoSize = true;
this.convertAudio.Checked = true; this.convertAudio.Checked = true;
this.convertAudio.CheckState = System.Windows.Forms.CheckState.Checked; this.convertAudio.CheckState = System.Windows.Forms.CheckState.Checked;
this.convertAudio.Location = new System.Drawing.Point(6, 78); this.convertAudio.Location = new System.Drawing.Point(6, 138);
this.convertAudio.Name = "convertAudio"; this.convertAudio.Name = "convertAudio";
this.convertAudio.Size = new System.Drawing.Size(198, 16); this.convertAudio.Size = new System.Drawing.Size(198, 16);
this.convertAudio.TabIndex = 6; this.convertAudio.TabIndex = 6;
@ -115,9 +170,9 @@
this.panel1.Controls.Add(this.tojpg); this.panel1.Controls.Add(this.tojpg);
this.panel1.Controls.Add(this.topng); this.panel1.Controls.Add(this.topng);
this.panel1.Controls.Add(this.tobmp); this.panel1.Controls.Add(this.tobmp);
this.panel1.Location = new System.Drawing.Point(30, 42); this.panel1.Location = new System.Drawing.Point(20, 102);
this.panel1.Name = "panel1"; this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(207, 30); this.panel1.Size = new System.Drawing.Size(202, 30);
this.panel1.TabIndex = 5; this.panel1.TabIndex = 5;
// //
// totga // totga
@ -167,7 +222,7 @@
this.converttexture.AutoSize = true; this.converttexture.AutoSize = true;
this.converttexture.Checked = true; this.converttexture.Checked = true;
this.converttexture.CheckState = System.Windows.Forms.CheckState.Checked; this.converttexture.CheckState = System.Windows.Forms.CheckState.Checked;
this.converttexture.Location = new System.Drawing.Point(6, 20); this.converttexture.Location = new System.Drawing.Point(6, 80);
this.converttexture.Name = "converttexture"; this.converttexture.Name = "converttexture";
this.converttexture.Size = new System.Drawing.Size(126, 16); this.converttexture.Size = new System.Drawing.Size(126, 16);
this.converttexture.TabIndex = 1; this.converttexture.TabIndex = 1;
@ -193,7 +248,7 @@
this.groupBox2.Controls.Add(this.castToBone); this.groupBox2.Controls.Add(this.castToBone);
this.groupBox2.Controls.Add(this.exportAllNodes); this.groupBox2.Controls.Add(this.exportAllNodes);
this.groupBox2.Controls.Add(this.eulerFilter); this.groupBox2.Controls.Add(this.eulerFilter);
this.groupBox2.Location = new System.Drawing.Point(12, 12); this.groupBox2.Location = new System.Drawing.Point(250, 12);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(214, 302); this.groupBox2.Size = new System.Drawing.Size(214, 302);
this.groupBox2.TabIndex = 11; this.groupBox2.TabIndex = 11;
@ -398,7 +453,7 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.Cancel; this.CancelButton = this.Cancel;
this.ClientSize = new System.Drawing.Size(490, 328); this.ClientSize = new System.Drawing.Size(477, 351);
this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.Cancel); this.Controls.Add(this.Cancel);
@ -453,5 +508,9 @@
private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label5;
private System.Windows.Forms.CheckBox exportBlendShape; private System.Windows.Forms.CheckBox exportBlendShape;
private System.Windows.Forms.CheckBox exportAnimations; private System.Windows.Forms.CheckBox exportAnimations;
private System.Windows.Forms.ComboBox assetGroupOptions;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.CheckBox restoreExtensionName;
private System.Windows.Forms.CheckBox openAfterExport;
} }
} }

View File

@ -15,6 +15,8 @@ namespace AssetStudioGUI
public ExportOptions() public ExportOptions()
{ {
InitializeComponent(); InitializeComponent();
assetGroupOptions.SelectedIndex = Properties.Settings.Default.assetGroupOption;
restoreExtensionName.Checked = Properties.Settings.Default.restoreExtensionName;
converttexture.Checked = Properties.Settings.Default.convertTexture; converttexture.Checked = Properties.Settings.Default.convertTexture;
convertAudio.Checked = Properties.Settings.Default.convertAudio; convertAudio.Checked = Properties.Settings.Default.convertAudio;
var str = Properties.Settings.Default.convertType; var str = Properties.Settings.Default.convertType;
@ -26,6 +28,7 @@ namespace AssetStudioGUI
break; break;
} }
} }
openAfterExport.Checked = Properties.Settings.Default.openAfterExport;
eulerFilter.Checked = Properties.Settings.Default.eulerFilter; eulerFilter.Checked = Properties.Settings.Default.eulerFilter;
filterPrecision.Value = Properties.Settings.Default.filterPrecision; filterPrecision.Value = Properties.Settings.Default.filterPrecision;
exportAllNodes.Checked = Properties.Settings.Default.exportAllNodes; exportAllNodes.Checked = Properties.Settings.Default.exportAllNodes;
@ -41,6 +44,8 @@ namespace AssetStudioGUI
private void OKbutton_Click(object sender, EventArgs e) private void OKbutton_Click(object sender, EventArgs e)
{ {
Properties.Settings.Default.assetGroupOption = assetGroupOptions.SelectedIndex;
Properties.Settings.Default.restoreExtensionName = restoreExtensionName.Checked;
Properties.Settings.Default.convertTexture = converttexture.Checked; Properties.Settings.Default.convertTexture = converttexture.Checked;
Properties.Settings.Default.convertAudio = convertAudio.Checked; Properties.Settings.Default.convertAudio = convertAudio.Checked;
foreach (Control c in panel1.Controls) foreach (Control c in panel1.Controls)
@ -51,6 +56,7 @@ namespace AssetStudioGUI
break; break;
} }
} }
Properties.Settings.Default.openAfterExport = openAfterExport.Checked;
Properties.Settings.Default.eulerFilter = eulerFilter.Checked; Properties.Settings.Default.eulerFilter = eulerFilter.Checked;
Properties.Settings.Default.filterPrecision = filterPrecision.Value; Properties.Settings.Default.filterPrecision = filterPrecision.Value;
Properties.Settings.Default.exportAllNodes = exportAllNodes.Checked; Properties.Settings.Default.exportAllNodes = exportAllNodes.Checked;

View File

@ -112,7 +112,15 @@ namespace AssetStudioGUI
public static bool ExportTextAsset(AssetItem item, string exportPath) public static bool ExportTextAsset(AssetItem item, string exportPath)
{ {
var m_TextAsset = (TextAsset)(item.Asset); var m_TextAsset = (TextAsset)(item.Asset);
var exportFullName = exportPath + item.Text + ".txt"; var extension = ".txt";
if (Properties.Settings.Default.restoreExtensionName)
{
if (!string.IsNullOrEmpty(item.Container))
{
extension = Path.GetExtension(item.Container);
}
}
var exportFullName = exportPath + item.Text + extension;
if (ExportFileExists(exportFullName)) if (ExportFileExists(exportFullName))
return false; return false;
File.WriteAllBytes(exportFullName, m_TextAsset.m_Script); File.WriteAllBytes(exportFullName, m_TextAsset.m_Script);
@ -284,7 +292,7 @@ namespace AssetStudioGUI
{ {
if (tga) if (tga)
{ {
TGASharpLib.TGA file = new TGASharpLib.TGA(bitmap); var file = new TGA(bitmap);
file.Save(exportFullName); file.Save(exportFullName);
} }
else else
@ -367,5 +375,38 @@ namespace AssetStudioGUI
} }
return false; return false;
} }
public static bool ExportConvertFile(AssetItem item, string exportPath)
{
switch (item.Type)
{
case ClassIDType.Texture2D:
return ExportTexture2D(item, exportPath);
case ClassIDType.AudioClip:
return ExportAudioClip(item, exportPath);
case ClassIDType.Shader:
return ExportShader(item, exportPath);
case ClassIDType.TextAsset:
return ExportTextAsset(item, exportPath);
case ClassIDType.MonoBehaviour:
return ExportMonoBehaviour(item, exportPath);
case ClassIDType.Font:
return ExportFont(item, exportPath);
case ClassIDType.Mesh:
return ExportMesh(item, exportPath);
case ClassIDType.VideoClip:
return ExportVideoClip(item, exportPath);
case ClassIDType.MovieTexture:
return ExportMovieTexture(item, exportPath);
case ClassIDType.Sprite:
return ExportSprite(item, exportPath);
case ClassIDType.Animator:
return ExportAnimator(item, exportPath);
case ClassIDType.AnimationClip:
return false;
default:
return ExportRawFile(item, exportPath);
}
}
} }
} }

View File

@ -250,5 +250,17 @@ namespace AssetStudioGUI.Properties {
this["castToBone"] = value; this["castToBone"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool restoreExtensionName {
get {
return ((bool)(this["restoreExtensionName"]));
}
set {
this["restoreExtensionName"] = value;
}
}
} }
} }

View File

@ -59,5 +59,8 @@
<Setting Name="castToBone" Type="System.Boolean" Scope="User"> <Setting Name="castToBone" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value> <Value Profile="(Default)">False</Value>
</Setting> </Setting>
<Setting Name="restoreExtensionName" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -349,109 +349,51 @@ namespace AssetStudioGUI
Progress.Reset(); Progress.Reset();
foreach (var asset in toExportAssets) foreach (var asset in toExportAssets)
{ {
var exportpath = savePath + "\\"; string exportPath;
if (Properties.Settings.Default.assetGroupOption == 1) switch (Properties.Settings.Default.assetGroupOption)
{ {
exportpath += Path.GetFileNameWithoutExtension(asset.SourceFile.fullName) + "_export\\"; case 0: //type name
} exportPath = Path.Combine(savePath, asset.TypeString);
else if (Properties.Settings.Default.assetGroupOption == 0) break;
{ case 1: //container path
exportpath = savePath + "\\" + asset.TypeString + "\\"; if (!string.IsNullOrEmpty(asset.Container))
{
exportPath = Path.Combine(savePath, Path.GetDirectoryName(asset.Container));
}
else
{
exportPath = savePath;
}
break;
case 2: //source file
exportPath = Path.Combine(savePath, asset.SourceFile.fullName + "_export");
break;
default:
exportPath = savePath;
break;
} }
exportPath += Path.DirectorySeparatorChar;
StatusStripUpdate($"Exporting {asset.TypeString}: {asset.Text}"); StatusStripUpdate($"Exporting {asset.TypeString}: {asset.Text}");
try try
{ {
switch (exportType) switch (exportType)
{ {
case ExportType.Raw: case ExportType.Raw:
if (ExportRawFile(asset, exportpath)) if (ExportRawFile(asset, exportPath))
{ {
exportedCount++; exportedCount++;
} }
break; break;
case ExportType.Dump: case ExportType.Dump:
if (ExportDumpFile(asset, exportpath)) if (ExportDumpFile(asset, exportPath))
{ {
exportedCount++; exportedCount++;
} }
break; break;
case ExportType.Convert: case ExportType.Convert:
switch (asset.Type) if (ExportConvertFile(asset, exportPath))
{ {
case ClassIDType.Texture2D: exportedCount++;
if (ExportTexture2D(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.AudioClip:
if (ExportAudioClip(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.Shader:
if (ExportShader(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.TextAsset:
if (ExportTextAsset(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.MonoBehaviour:
if (ExportMonoBehaviour(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.Font:
if (ExportFont(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.Mesh:
if (ExportMesh(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.VideoClip:
if (ExportVideoClip(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.MovieTexture:
if (ExportMovieTexture(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.Sprite:
if (ExportSprite(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.Animator:
if (ExportAnimator(asset, exportpath))
{
exportedCount++;
}
break;
case ClassIDType.AnimationClip:
break;
default:
if (ExportRawFile(asset, exportpath))
{
exportedCount++;
}
break;
} }
break; break;
} }

View File

@ -64,6 +64,9 @@
<setting name="castToBone" serializeAs="String"> <setting name="castToBone" serializeAs="String">
<value>False</value> <value>False</value>
</setting> </setting>
<setting name="restoreExtensionName" serializeAs="String">
<value>True</value>
</setting>
</AssetStudioGUI.Properties.Settings> </AssetStudioGUI.Properties.Settings>
</userSettings> </userSettings>
</configuration> </configuration>