Hi there, is it possible to change crosshairs based on the player state (idle, aiming…)?
I have made 3 crosshair blueprints, for each state.

The idle crosshair shows up when I do this:
But when I do this, none of the crosshairs show up, even though I tested that BowEquipped is being called:
Any ideas?
Hey @ultranova0520!
You don’t have anything assigned to false for your branch. If you start the game and you don’t have a bow equipped, nothing will happen after you get to the branch. You need to connect false to Create BP HUD Widget.
Instead of trying to create your logic on “Event BeginPlay”, have you tried setting your idle using event begin play, and then using a custom event to swap out your crosshairs?
Oh ok, yea I can make a custom event. I will try that, thx! But then should I try custom function? Or a custom event?
Place the crosshairs in a switcher, make the main switcher widget a component, add it to the player. This way you do not need to ever create / manage any widgets besides calling a single event:

You could even work in an enumerator for more convenience. And if you only have 3 then setting it by index is probably fine, too.
Also, if the crosshairs are functionally indistinguishable and purely visual, perhaps using a single widget and setting a different image instead is better here.
2 Likes
how do I make the switcher component a widget? Also the blueprint you sent, where do I do this? in the player BP? or somewhere in the widget BP (because I cannot find anywhere in the wbp where i can make logic if that makes sense)
Ah makes sense. Sorry I am new to Unreal so some questions might sound dumb. I will do this thanks! 
1 Like