mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
support export all 3D objects and auto split
This commit is contained in:
parent
d61f1ac676
commit
248063276d
22
Unity Studio/UnityStudioForm.Designer.cs
generated
22
Unity Studio/UnityStudioForm.Designer.cs
generated
@ -101,6 +101,7 @@
|
||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
this.saveFolderDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
this.treeTip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.all3DObjectssplitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
@ -303,6 +304,7 @@
|
||||
//
|
||||
this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.exportAll3DMenuItem,
|
||||
this.all3DObjectssplitToolStripMenuItem,
|
||||
this.exportSelected3DMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.exportAllAssetsMenuItem,
|
||||
@ -315,40 +317,40 @@
|
||||
// exportAll3DMenuItem
|
||||
//
|
||||
this.exportAll3DMenuItem.Name = "exportAll3DMenuItem";
|
||||
this.exportAll3DMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
this.exportAll3DMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.exportAll3DMenuItem.Text = "All 3D objects";
|
||||
this.exportAll3DMenuItem.Click += new System.EventHandler(this.Export3DObjects_Click);
|
||||
//
|
||||
// exportSelected3DMenuItem
|
||||
//
|
||||
this.exportSelected3DMenuItem.Name = "exportSelected3DMenuItem";
|
||||
this.exportSelected3DMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
this.exportSelected3DMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.exportSelected3DMenuItem.Text = "Selected 3D objects";
|
||||
this.exportSelected3DMenuItem.Click += new System.EventHandler(this.Export3DObjects_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(188, 6);
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(189, 6);
|
||||
//
|
||||
// exportAllAssetsMenuItem
|
||||
//
|
||||
this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
|
||||
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.exportAllAssetsMenuItem.Text = "All assets";
|
||||
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
//
|
||||
// exportSelectedAssetsMenuItem
|
||||
//
|
||||
this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
|
||||
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.exportSelectedAssetsMenuItem.Text = "Selected assets";
|
||||
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
//
|
||||
// exportFilteredAssetsMenuItem
|
||||
//
|
||||
this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
|
||||
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.exportFilteredAssetsMenuItem.Text = "Filtered assets";
|
||||
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
|
||||
//
|
||||
@ -811,6 +813,13 @@
|
||||
this.saveFolderDialog1.RestoreDirectory = true;
|
||||
this.saveFolderDialog1.Title = "Browse for folder";
|
||||
//
|
||||
// all3DObjectssplitToolStripMenuItem
|
||||
//
|
||||
this.all3DObjectssplitToolStripMenuItem.Name = "all3DObjectssplitToolStripMenuItem";
|
||||
this.all3DObjectssplitToolStripMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.all3DObjectssplitToolStripMenuItem.Text = "All 3D objects (split)";
|
||||
this.all3DObjectssplitToolStripMenuItem.Click += new System.EventHandler(this.all3DObjectssplitToolStripMenuItem_Click);
|
||||
//
|
||||
// UnityStudioForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
@ -929,6 +938,7 @@
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem exportClassStructuresMenuItem;
|
||||
private System.Windows.Forms.Label FMODcopyright;
|
||||
private System.Windows.Forms.ToolStripMenuItem all3DObjectssplitToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1830,6 +1830,70 @@ namespace Unity_Studio
|
||||
else { return false; }
|
||||
}
|
||||
|
||||
private void all3DObjectssplitToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (sceneTreeView.Nodes.Count > 0)
|
||||
{
|
||||
if (saveFolderDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
var savePath = saveFolderDialog1.FileName;
|
||||
if (Path.GetFileName(savePath) == "Select folder or write folder name to create")
|
||||
{ savePath = Path.GetDirectoryName(saveFolderDialog1.FileName); }
|
||||
savePath = savePath + "\\";
|
||||
switch ((bool)Properties.Settings.Default["showExpOpt"])
|
||||
{
|
||||
case true:
|
||||
ExportOptions exportOpt = new ExportOptions();
|
||||
if (exportOpt.ShowDialog() == DialogResult.OK) { goto case false; }
|
||||
break;
|
||||
case false:
|
||||
{
|
||||
progressBar1.Value = 0;
|
||||
progressBar1.Maximum = sceneTreeView.Nodes.Count;
|
||||
//防止主界面假死
|
||||
ThreadPool.QueueUserWorkItem(delegate
|
||||
{
|
||||
sceneTreeView.Invoke(new Action(() =>
|
||||
{
|
||||
//挂起控件防止更新
|
||||
sceneTreeView.BeginUpdate();
|
||||
//先取消所有Node的选中
|
||||
foreach (TreeNode i in sceneTreeView.Nodes)
|
||||
{
|
||||
i.Checked = false;
|
||||
}
|
||||
}));
|
||||
//遍历根节点
|
||||
foreach (TreeNode i in sceneTreeView.Nodes)
|
||||
{
|
||||
if (i.Nodes.Count > 0)
|
||||
{
|
||||
//遍历一级子节点
|
||||
foreach (TreeNode j in i.Nodes)
|
||||
{
|
||||
var filename = j.Text;
|
||||
//选中它和它的子节点
|
||||
sceneTreeView.Invoke(new Action(() => j.Checked = true));
|
||||
//导出FBX
|
||||
WriteFBX(savePath + filename + ".fbx", false);
|
||||
//取消选中
|
||||
sceneTreeView.Invoke(new Action(() => j.Checked = false));
|
||||
}
|
||||
}
|
||||
ProgressBarPerformStep();
|
||||
}
|
||||
//取消挂起
|
||||
sceneTreeView.Invoke(new Action(() => sceneTreeView.EndUpdate()));
|
||||
if (openAfterExport.Checked) { Process.Start(savePath); }
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else { StatusStripUpdate("No Objects available for export"); }
|
||||
}
|
||||
|
||||
private void Export3DObjects_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user