It seems that Is Valid function/macro does not take a ref of struct as an input.
Engine version: 4.15.1
1.Create a local variable with type of array of struct. (any type.)
2.Get a reference of element with Get node. (I think it returns a ref after 4.12.)
3.Try to connect it to Is Valid function or macro node.
Result:
Message “XYZ structure is not compatible with object reference.” is shown.
I believe this works as intended. Get returns a reference to a UObject and a copy for structs as they are not UObjects. If you drag a wire off a struct array’s Get and type valid, you’ll observe that ContextSensitive does not allow validation here.
Could you describe a situation where you’d need to validate a struct?
NB:
As structs containing array menbers are not initialized properly (as default values of arrays in structs are not used) I think the struct is invalid.
In some type of nodes like Make struct shows errors.
For example:
Struct contains 'Vertices ’ of type Vector arrays,
with default value (X=0.000000,Y=0.000000,Z=0.000000) set in struct def.
No input pin is connected to 'Vertices '.
Output:
Error The current value (((X=0.000000,Y=0.000000,Z=0.000000))) of the ’ Vertices ’ pin is invalid: Array inputs (like ‘Vertices’) must have an input wired into them (try connecting a MakeArray node).
So, Get node should cause similar error (but not).
Get node returns struct with array size 0, currently.
I want to check such case.