diff --git a/Source/Editor/Surface/SurfaceParameter.cs b/Source/Editor/Surface/SurfaceParameter.cs
index c76cb058e..be69f69b2 100644
--- a/Source/Editor/Surface/SurfaceParameter.cs
+++ b/Source/Editor/Surface/SurfaceParameter.cs
@@ -48,5 +48,11 @@ namespace FlaxEditor.Surface
///
[NoSerialize, HideInEditor]
public readonly SurfaceMeta Meta = new SurfaceMeta();
+
+ ///
+ public override string ToString()
+ {
+ return $"{Type} {Name} = {Value?.ToString() ?? "null"}";
+ }
}
}
diff --git a/Source/Editor/Surface/SurfaceUtils.cs b/Source/Editor/Surface/SurfaceUtils.cs
index 60cd714c4..638d8338c 100644
--- a/Source/Editor/Surface/SurfaceUtils.cs
+++ b/Source/Editor/Surface/SurfaceUtils.cs
@@ -21,6 +21,7 @@ namespace FlaxEditor.Surface
{
public GraphParameter Parameter;
public bool IsPublic;
+ public int Index;
public Type Type;
public object Tag;
public Attribute[] Attributes;
@@ -31,15 +32,16 @@ namespace FlaxEditor.Surface
public HeaderAttribute Header;
public string DisplayName;
- public GraphParameterData(GraphParameter parameter, object tag = null)
- : this(parameter, null, parameter.IsPublic, parameter.Type, SurfaceMeta.GetAttributes(parameter), tag)
+ public GraphParameterData(GraphParameter parameter, int index, object tag = null)
+ : this(parameter, index, null, parameter.IsPublic, parameter.Type, SurfaceMeta.GetAttributes(parameter), tag)
{
}
- public GraphParameterData(GraphParameter parameter, string name, bool isPublic, Type type, Attribute[] attributes, object tag)
+ public GraphParameterData(GraphParameter parameter, int index, string name, bool isPublic, Type type, Attribute[] attributes, object tag)
{
Parameter = parameter;
IsPublic = isPublic;
+ Index = index;
Type = type;
Tag = tag;
Attributes = attributes;
@@ -74,8 +76,14 @@ namespace FlaxEditor.Surface
if (Editor.Instance.Options.Options.General.ScriptMembersOrder == GeneralOptions.MembersOrder.Alphabetical)
return string.Compare(x.DisplayName, y.DisplayName, StringComparison.InvariantCulture);
- // Keep same order
- return 0;
+ // Keep same order (from input indices)
+ return x.Index - y.Index;
+ }
+
+ ///
+ public override string ToString()
+ {
+ return $"{Type} {DisplayName}";
}
}
@@ -206,6 +214,7 @@ namespace FlaxEditor.Surface
Profiler.EndEvent();
}
+ int index = 0;
foreach (var parameter in parameters)
{
var parameterId = parameter.ParameterID;
@@ -229,7 +238,7 @@ namespace FlaxEditor.Surface
surfaceParameters.Add(surfaceParameter);
}
var attributes = surfaceParameter?.Meta.GetAttributes() ?? FlaxEngine.Utils.GetEmptyArray();
- data[i] = new GraphParameterData(null, parameter.Name, parameter.IsPublic, ToType(parameter.ParameterType), attributes, parameter);
+ data[i] = new GraphParameterData(null, index++, parameter.Name, parameter.IsPublic, ToType(parameter.ParameterType), attributes, parameter);
i++;
}
Array.Sort(data, GraphParameterData.Compare);
@@ -243,7 +252,7 @@ namespace FlaxEditor.Surface
int i = 0;
foreach (var parameter in parameters)
{
- data[i] = new GraphParameterData(parameter.EmitterParameter, parameter);
+ data[i] = new GraphParameterData(parameter.EmitterParameter, i, parameter);
i++;
}
Array.Sort(data, GraphParameterData.Compare);
@@ -257,7 +266,7 @@ namespace FlaxEditor.Surface
int i = 0;
foreach (var parameter in parameters)
{
- data[i] = new GraphParameterData(parameter);
+ data[i] = new GraphParameterData(parameter, i);
i++;
}
Array.Sort(data, GraphParameterData.Compare);
diff --git a/Source/Engine/Graphics/Materials/MaterialInfo.cs b/Source/Engine/Graphics/Materials/MaterialInfo.cs
index a8ff82665..4ff56ea63 100644
--- a/Source/Engine/Graphics/Materials/MaterialInfo.cs
+++ b/Source/Engine/Graphics/Materials/MaterialInfo.cs
@@ -97,4 +97,13 @@ namespace FlaxEngine
}
}
}
+
+ partial class MaterialParameter
+ {
+ ///
+ public override string ToString()
+ {
+ return $"{ParameterType} {Name} = {Value?.ToString() ?? "null"}";
+ }
+ }
}