Ver código fonte

Instead of just the "generate tangents" toggle, allow to pass any parameters to AssetImporter from the editor. Default "-t".

Lasse Öörni 12 anos atrás
pai
commit
360af96588

+ 2 - 2
Bin/Data/Scripts/Editor.as

@@ -126,7 +126,7 @@ void LoadConfig()
         if (objectElem.HasAttribute("scalesnap")) scaleSnap = objectElem.GetBool("scalesnap");
         if (objectElem.HasAttribute("uselocalids")) useLocalIDs = objectElem.GetBool("uselocalids");
         if (objectElem.HasAttribute("applymateriallist")) applyMaterialList = objectElem.GetBool("applymateriallist");
-        if (objectElem.HasAttribute("generatetangents")) generateTangents = objectElem.GetBool("generatetangents");
+        if (objectElem.HasAttribute("importoptions")) importOptions = objectElem.GetAttribute("importoptions");
         if (objectElem.HasAttribute("pickmode")) pickMode = objectElem.GetInt("pickmode");
     }
 
@@ -187,7 +187,7 @@ void SaveConfig()
     objectElem.SetBool("scalesnap", scaleSnap);
     objectElem.SetBool("uselocalids", useLocalIDs);
     objectElem.SetBool("applymateriallist", applyMaterialList);
-    objectElem.SetBool("generatetangents", generateTangents);
+    objectElem.SetAttribute("importoptions", importOptions);
     objectElem.SetInt("pickmode", pickMode);
 
     if (renderer !is null)

+ 7 - 5
Bin/Data/Scripts/Editor/EditorImport.as

@@ -1,6 +1,6 @@
 // Urho3D editor import functions
 
-bool generateTangents = false;
+String importOptions = "-t";
 
 class ParentAssignment
 {
@@ -31,8 +31,9 @@ void ImportModel(const String&in fileName)
     args.Push("\"" + fileName + "\"");
     args.Push("\"" + outFileName + "\"");
     args.Push("-p\"" + sceneResourcePath + "\"");
-    if (generateTangents)
-        args.Push("-t");
+    Array<String> options = importOptions.Trimmed().Split(' ');
+    for (uint i = 0; i < options.length; ++i)
+        args.Push(options[i]);
 
     if (fileSystem.SystemRun(fileSystem.programDir + "AssetImporter", args) == 0)
     {
@@ -98,8 +99,9 @@ void ImportScene(const String&in fileName)
         args.Push("\"" + fileName + "\"");
         args.Push("\"" + tempSceneName + "\"");
         args.Push("-p\"" + sceneResourcePath + "\"");
-        if (generateTangents)
-            args.Push("-t");
+        Array<String> options = importOptions.Trimmed().Split(' ');
+        for (uint i = 0; i < options.length; ++i)
+            args.Push(options[i]);
         if (useLocalIDs)
             args.Push("-i");
 

+ 7 - 6
Bin/Data/Scripts/Editor/EditorSettings.as

@@ -57,8 +57,8 @@ void UpdateEditorSettingsDialog()
     CheckBox@ applyMaterialListToggle = settingsDialog.GetChild("ApplyMaterialListToggle", true);
     applyMaterialListToggle.checked = applyMaterialList;
 
-    CheckBox@ generateTangentsToggle = settingsDialog.GetChild("GenerateTangentsToggle", true);
-    generateTangentsToggle.checked = generateTangents;
+    LineEdit@ importOptionsEdit = settingsDialog.GetChild("ImportOptionsEdit", true);
+    importOptionsEdit.text = importOptions;
 
     DropDownList@ pickModeEdit = settingsDialog.GetChild("PickModeEdit", true);
     pickModeEdit.selection = pickMode;
@@ -110,7 +110,8 @@ void UpdateEditorSettingsDialog()
         SubscribeToEvent(scaleSnapToggle, "Toggled", "EditScaleSnap");
         SubscribeToEvent(localIDToggle, "Toggled", "EditUseLocalIDs");
         SubscribeToEvent(applyMaterialListToggle, "Toggled", "EditApplyMaterialList");
-        SubscribeToEvent(generateTangentsToggle, "Toggled", "EditGenerateTangents");
+        SubscribeToEvent(importOptionsEdit, "TextChanged", "EditImportOptions");
+        SubscribeToEvent(importOptionsEdit, "TextFinished", "EditImportOptions");
         SubscribeToEvent(pickModeEdit, "ItemSelected", "EditPickMode");
         SubscribeToEvent(textureQualityEdit, "ItemSelected", "EditTextureQuality");
         SubscribeToEvent(materialQualityEdit, "ItemSelected", "EditMaterialQuality");
@@ -233,10 +234,10 @@ void EditApplyMaterialList(StringHash eventType, VariantMap& eventData)
     applyMaterialList = edit.checked;
 }
 
-void EditGenerateTangents(StringHash eventType, VariantMap& eventData)
+void EditImportOptions(StringHash eventType, VariantMap& eventData)
 {
-    CheckBox@ edit = eventData["Element"].GetUIElement();
-    generateTangents = edit.checked;
+    LineEdit@ edit = eventData["Element"].GetUIElement();
+    importOptions = edit.text.Trimmed();
 }
 
 void EditPickMode(StringHash eventType, VariantMap& eventData)

+ 8 - 8
Bin/Data/UI/EditorSettingsDialog.xml

@@ -216,12 +216,12 @@
         <attribute name="Layout Mode" value="Horizontal" />
         <attribute name="Layout Spacing" value="8" />
         <element type="CheckBox">
-            <attribute name="Name" value="GenerateTangentsToggle" />
+            <attribute name="Name" value="ApplyMaterialListToggle" />
             <attribute name="Min Size" value="16 16" />
             <attribute name="Max Size" value="16 16" />
         </element>
         <element type="Text">
-            <attribute name="Text" value="Generate tangents on import" />
+            <attribute name="Text" value="Apply material list when model set" />
         </element>
     </element>
     <element>
@@ -229,13 +229,13 @@
         <attribute name="Max Size" value="2147483647 17" />
         <attribute name="Layout Mode" value="Horizontal" />
         <attribute name="Layout Spacing" value="8" />
-        <element type="CheckBox">
-            <attribute name="Name" value="ApplyMaterialListToggle" />
-            <attribute name="Min Size" value="16 16" />
-            <attribute name="Max Size" value="16 16" />
-        </element>
         <element type="Text">
-            <attribute name="Text" value="Apply material list when model set" />
+            <attribute name="Text" value="AssetImporter options" />
+        </element>
+        <element type="LineEdit">
+            <attribute name="Name" value="ImportOptionsEdit" />
+            <attribute name="Min Size" value="100 0" />
+            <attribute name="Max Size" value="100 2147483647" />
         </element>
     </element>
     <element type="BorderImage" style="EditorDivider" />