Im starting with the AI perception system and so far i had understood the following things:
- OnPerceptionUpdated: shows the actors that has been or stopped been perceived. So i validate my results breaking the AiStimulus with Succesfully Sensed if i need to know if its leaving or entering the Sensed state.
- Use GetPerceivedActors together with GetActorsPerception to filter out which actors had been perceived depending on the sense i want to prioritize.
Right now, my logic is simple.
- Controlled Pawn breaks a wall
- The wall is destroyed and a Destructable Wall is spawned (spawn is being called inside the Pawn BP)
- The Destructable Wall calls a MakeNoise on the Begin Play (tagged with Wall)
- AI OnPerceptionUpdated is triggered
- AI moves to location
All that works fine, but when i debug it the Updated Actors reports my Pawn as the noise source. i got a different logic running in parallel (EQS that looks for my pawn on visibility) and that works fine. however, both logics are totally independent. as long as i dont trigger noise events on other actors, the sight part works as expected, as soon as i make a different actor make noise, it associates it to my pawn.
This has been tested with a simple Even Tick on a different random Actor, independent of my Pawn with MakeNoise, and in this case the AIchar never detects it. Tried adding AIPerceptionStimuliSource (register on Hearing) on every noise source.