After some more research I think I understand the following:
– In IL2CPP (Unity’s scripting to CPP) System.Reflection.Emit is aggressively removed because injecting code is not allowed on the platforms where IL2CPP is used.
– nodeCanvas 1.5.9 does not necessarily need to inject code, but uses Expression.Compile() to look up a method.
– Unity has a quick fix where you can tell the IL2CPP to keep some of the Reflection code and fall back on a LambdaExpression to look up methods. However, this currently only supports looking up methods with a single string (no other parameters or values are allowed).
– nodeCanvas (and the scripts/nodes I have) require additional value types and parameters, which makes it incompatible with this fix, and Unity has no ETA on when they will implement support for more value types and parameters.
My options, then, are to either rescript the game with a different visual scripter, or wait for Unity to implement what I need.
I just have two questions here that I would appreciate if someone could answer.
1) Is this compatibility “problem” fixed in later versions of nodeCanvas?
2) Is there some workaround for this that I’m missing?
Additional question:
3) I remained on nodeCanvas 1.5.9 because upgrading automatically to 2.x was not supported, but also because the dialogue tree was removed(?). My question is if there is equal functionality to the dialogue tree in 2.x.
Thanks,
– Markus
Login
Register
By registering on this website you agree to our Privacy Policy.