I’m using JetBrains Rider, and it has this neat thing where if you reference a function in a UnityEvent, it’ll show that in the code editor and tell you where it’s being referenced. (“Find Usages in Unity Files” at https://www.jetbrains.com/lp/dotnet-unity/)
I was hoping it would also be able to tell where I’m referencing a function in an FSM asset via ExecuteFunction, but Rider doesn’t see this and thinks the function isn’t being called anywhere. I tried making a custom action with a BBParameter<UnityEvent> hoping to work around that, but it’s not editable in the task editor and doesn’t let me assign any functions (picture attached).
Any ideas on how I could get Rider to actually know when/where I’m referencing functions in an FSM asset? Is there a way to fix the task editor for the UnityEvent and maybe then that would work successfully?
The calls to those functions from within NodeCanvas are done via reflection rather than actual generated code and therefore it is unfortunately not possible for Rider (or any other IDE) to show such references. This is generally true and a limitation with reflection.
Regarding the UnityEvent inspector within NodeCanvas, the last time I looked at this it was not possible to show the default UnityEvent inspector that Unity has withn the NodeCanvas panels. I could create a custom inspector for UnityEvents, but then it is almost certain that Rider will not “see” the functions references used in that custom inspector since that functionality is probably specially made to work with the default UnityEvent inspector that Unity has.
Unfortunately I can’t think of a way for Rider to “see” the reflection-based function references made in NodeCanvas. :-/