Prechádzať zdrojové kódy

Better animation split info inspector GUI

BearishSun 9 rokov pred
rodič
commit
e7dbe16a48

+ 15 - 7
Source/MBansheeEditor/Inspectors/MeshInspector.cs

@@ -190,18 +190,26 @@ namespace BansheeEditor
             protected override GUILayoutX CreateGUI(GUILayoutY layout)
             protected override GUILayoutX CreateGUI(GUILayoutY layout)
             {
             {
                 GUILayoutX titleLayout = layout.AddLayoutX();
                 GUILayoutX titleLayout = layout.AddLayoutX();
-                nameField = new GUITextField(new LocEdString("Name"));
-                startFrameField = new GUIIntField(new LocEdString("Start"));
-                endFrameField = new GUIIntField(new LocEdString("End"));
-                isAdditiveField = new GUIToggleField(new LocEdString("Is additive"));
+                GUILayoutX contentLayout = layout.AddLayoutX();
+
+                GUILabel title = new GUILabel(new LocEdString(SeqIndex + ". "));
+                nameField = new GUITextField(new LocEdString("Name"), 40, false, "", GUIOption.FixedWidth(160));
+                startFrameField = new GUIIntField(new LocEdString("Start"), 40, "", GUIOption.FixedWidth(80));
+                endFrameField = new GUIIntField(new LocEdString("End"), 40, "", GUIOption.FixedWidth(80));
+                isAdditiveField = new GUIToggleField(new LocEdString("Is additive"), 50, "", GUIOption.FixedWidth(80));
 
 
                 startFrameField.SetRange(0, int.MaxValue);
                 startFrameField.SetRange(0, int.MaxValue);
                 endFrameField.SetRange(0, int.MaxValue);
                 endFrameField.SetRange(0, int.MaxValue);
 
 
+                titleLayout.AddElement(title);
                 titleLayout.AddElement(nameField);
                 titleLayout.AddElement(nameField);
-                titleLayout.AddElement(startFrameField);
-                titleLayout.AddElement(endFrameField);
-                titleLayout.AddElement(isAdditiveField);
+                titleLayout.AddFlexibleSpace();
+                contentLayout.AddSpace(10);
+                contentLayout.AddElement(startFrameField);
+                contentLayout.AddSpace(5);
+                contentLayout.AddElement(endFrameField);
+                contentLayout.AddSpace(5);
+                contentLayout.AddElement(isAdditiveField);
 
 
                 nameField.OnChanged += x =>
                 nameField.OnChanged += x =>
                 {
                 {

+ 8 - 2
Source/SBansheeEditor/Source/BsScriptImportOptions.cpp

@@ -319,10 +319,16 @@ namespace BansheeEngine
 
 
 	void ScriptMeshImportOptions::internal_SetAnimationClipSplits(ScriptMeshImportOptions* thisPtr, MonoArray* value)
 	void ScriptMeshImportOptions::internal_SetAnimationClipSplits(ScriptMeshImportOptions* thisPtr, MonoArray* value)
 	{
 	{
-		ScriptArray inputArray(value);
-
 		SPtr<MeshImportOptions> io = thisPtr->getMeshImportOptions();
 		SPtr<MeshImportOptions> io = thisPtr->getMeshImportOptions();
 
 
+		if(value == nullptr)
+		{
+			io->setAnimationClipSplits({});
+			return;
+		}
+
+		ScriptArray inputArray(value);
+
 		UINT32 numSplits = inputArray.size();
 		UINT32 numSplits = inputArray.size();
 		Vector<AnimationSplitInfo> splitInfos(numSplits);
 		Vector<AnimationSplitInfo> splitInfos(numSplits);
 		for (UINT32 i = 0; i < numSplits; i++)
 		for (UINT32 i = 0; i < numSplits; i++)