0
Answered

still getting Failed to reflect member unit warnings

Ed WonWon 3 years ago updated by Lazlo Bonin (Lead Developer) 3 years ago 6

I just updgraded to Bolt 1.3.0 

I'm still getting tons of these failed to reflect member unit warnings

I remember you mentioning something about adding an attribute to deal with these, but I don't see it in the documenation yet.

In the first warning in the screenshot, you can see "no matching method found" and it appears that I changed the parameters of the method. I haven't checked the other ones though.

These warnings drive me nuts, I wish I had a way to hide or clean them up.

Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):

The attribute your looking for is

 [RenamedFrom ("PreviousMethodName(OptionalParams)")]


Pending Review

No, you shouldn't include the parameters in the parentheses.

Oh ok, I swore you said something about being about to include those changes awhile back. So just by name then. Gotcha

Answered

Hi Ed,

Yes, if you renamed these methods in your code and want Bolt to update your graphs accordingly, just use [RenamedFrom("PreviousMethodName")].

However, if you no longer have or use these methods but still have units that point to them in your graphs, yes, Bolt will warn you about it, it is by design, because these units will fail at runtime.

+1

ok so this is not working for methods where I've only changed the parameters, I've searched up and down, back and forth through all my states and sub states (there are a lot) and I cannot find where the node that's causing the warning is coming from

I know you are working on some search and replace features (that could hopefully make it easier to find broken things) but for now, maybe if you just added more detail to the log?

like maybe if the warning was like "there's a messed up node in SuperStateA / StateD / FlowStateB

Adding more details is not a trivial task unfortunately.

When you select the log item in the console, Unity should highlight either:

  • The macro from which it was launched
  • The GameObject from which it was launched, if it's in an embed machine

Can that help you narrow down your search?