Add support for array of Visual Script objects
This commit is contained in:
@@ -41,7 +41,7 @@ namespace FlaxEditor.Utilities
|
||||
|
||||
// Special case for collections
|
||||
if (Index != null)
|
||||
result = new ScriptType(result.GetElementType());
|
||||
result = result.GetElementType();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -64,11 +64,11 @@ namespace FlaxEditor.Utilities
|
||||
&& memberValue != null
|
||||
&& !refStack.Contains(memberValue))
|
||||
{
|
||||
if (memberType.IsArray && !typeof(FlaxEngine.Object).IsAssignableFrom(memberType.GetElementType()))
|
||||
if (memberType.IsArray && !ScriptType.FlaxObject.IsAssignableFrom(memberType.GetElementType()))
|
||||
{
|
||||
// Array
|
||||
var array = (Array)memberValue;
|
||||
var elementType = new ScriptType(memberType.GetElementType());
|
||||
var elementType = memberType.GetElementType();
|
||||
var length = array.Length;
|
||||
refStack.Push(memberValue);
|
||||
for (int i = 0; i < length; i++)
|
||||
@@ -78,7 +78,7 @@ namespace FlaxEditor.Utilities
|
||||
}
|
||||
refStack.Pop();
|
||||
}
|
||||
else if (typeof(IList).IsAssignableFrom(memberType.Type) && !typeof(FlaxEngine.Object).IsAssignableFrom(memberType.GetElementType()))
|
||||
else if (typeof(IList).IsAssignableFrom(memberType.Type) && !ScriptType.FlaxObject.IsAssignableFrom(memberType.GetElementType()))
|
||||
{
|
||||
// List
|
||||
var list = (IList)memberValue;
|
||||
@@ -105,7 +105,7 @@ namespace FlaxEditor.Utilities
|
||||
GetEntries(new MemberInfoPath.Entry(member.Member, key), membersPath, result, values, refStack, valueType, value);
|
||||
}
|
||||
}
|
||||
else if (memberType.IsClass && !new ScriptType(typeof(FlaxEngine.Object)).IsAssignableFrom(memberType))
|
||||
else if (memberType.IsClass && !ScriptType.FlaxObject.IsAssignableFrom(memberType))
|
||||
{
|
||||
// Object
|
||||
refStack.Push(memberValue);
|
||||
|
||||
@@ -282,7 +282,7 @@ namespace FlaxEditor.Utilities
|
||||
case VariantType.Pointer: return new ScriptType(typeof(IntPtr));
|
||||
case VariantType.String: return new ScriptType(typeof(string));
|
||||
case VariantType.Typename: return new ScriptType(typeof(Type));
|
||||
case VariantType.Object: return new ScriptType(typeof(FlaxEngine.Object));
|
||||
case VariantType.Object: return ScriptType.FlaxObject;
|
||||
case VariantType.Asset: return new ScriptType(typeof(Asset));
|
||||
case VariantType.Vector2: return new ScriptType(typeof(Vector2));
|
||||
case VariantType.Vector3: return new ScriptType(typeof(Vector3));
|
||||
|
||||
Reference in New Issue
Block a user