Both of these are interface calls:
Why do they look different?
Itâs because youâre selecting the wrong version of the call.
The one between you ( the current BP ) and another actor gets the envelope. Other variations ( including calling it on yourself ) get a yellow pin.
Type the name of your interface call into the lookup and notice there are several.
Nope, I already tested and added them both. They both look like that:
Donât pull from a pin and search, do the search without touching anything firstâŚ
In the left side, you are calling on a concrete class whereas on the other side, youâre calling on an interface.
Calling on the concrete class is slightly cheaper, for what itâs worth.
To get the interface dispatch, you need to assign the concrete class to an intermediate value of type interface, and then call on that interface value.
Iâm not. Itâs weird, in one blueprint, I get many more options when I search, and no letter symbol, but in another blueprint, I get very few options when I search and always a letter symbol:
Iâm afraid I donât understand this. Look at the two screenshots I posted above. Theyâre the same interface, but called from two different classes, which both implement it, yet the nodes I get look different.
Call it on an actor ( reference to actor ).
Theyâre both user widgets. Thereâs something else going on hereâŚ
Youâre not showing the types of the variables, so thereâs no way to verify whether what youâre saying is actually true.
My experience has been that calling methods on actors that are known to have that method will get blue dot, calling interface methods on actors not known to have the method, or on interface instances, will get yellow dot.
There is actually an issue where sometimes the correct version of an interface wonât be used in a BP for some reason. What you can do is create the correct node in a different BP, then copy and paste it into the BP that isnât cooperating.
The default sky doesnât implement this
Please tell me what additional information you need:
Woooow, that worked. Ok, so bug confirmed, I guess?
Iâve never had thatâŚ
Itâs a weird one, but I have seen it a few times with sibling BPâs (i.e. basically identical BPâs acting on the same nodes). The copy/paste workaround is easy enough that I havenât really tried to find what the actual problem is. Itâs most likely stale interface data in the BP thatâs having issues, but who knows.
OK, thatâs crazy! I guess Iâve been lucky and never run into this.
Oh, noooo⌠when I hit compile, the letters disappeared again and the yellow dot appears!
(Interestingly, they do not appear if I copy it the other way around to the class where they do show up and hit compile.)
Itâs because the call is on itself, like I saidâŚ
Basically, if you use interfaces for what theyâre designed for, which is anonymous signals, you will always get the blue ping.
The whole point of BPIs, is youâre are making a call from actor A to B, and A should know nothing about the internals of B.
Except that I copied my âSelect Option 2â interface call to the CRPGMenu class, which if you check in the screenshot above, does not implement that interface, so how can the call be on itself?
I want to use them as anonymous signals, but apparently, if Unreal detects that a class implements the actual interface, it doesnât see it as anonymous anymore?
Are you making a call from class X to class X? Different actors of the same type?