If there is only the player and if it is inside the range and vision cone, then it most likely fails due to the trace test. As a last resort you could (in C++) implement the CanBeSeenFrom
function of the IAISightTargetInterface
in your player character and therefore doing the trace test yourself. As a bonus you can then also set the stimuls strength there (otherwise it will always be 1.0f it is in sight and 0.0f if not).
Also from what I see from the source code is that the default implementation (what it will use if the actor it is tracing against does not implement the IAISightTargetInterface
) of the trace check will use the “EyesLocation” of the one who is tracing (the bot in this case) against the actor location of what it traces for (in this case the actor location of the player) and the default collision channel it will use (you can change it in the project settings) is the visibility channel. So also make sure that you have nothing that is not owned by the player that is blocking the visibility channel between player and bot.