Announcement

Collapse
No announcement yet.

Make AIPerception ignore a certain actor

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by redbox View Post
    But you will have some dying/death state in character anyway.
    And you should check it before attack. The same as you should check some other states, like "stun", for example.
    Found the perfect way to clear it from the perception: i just added this to the "die" function. I think it is ok performancewise for a few (<10) actors.
    Code:
            TArray<AActor*> FoundActors;
            UGameplayStatics::GetAllActorsOfClass(this, APirateController::StaticClass(), FoundActors);
            for (AActor* CurrentActor : FoundActors) {
                Cast<APirateController>(CurrentActor)->AIPerception->ForgetActor(this);
            }

    Leave a comment:


  • replied
    But you will have some dying/death state in character anyway.
    And you should check it before attack. The same as you should check some other states, like "stun", for example.

    Leave a comment:


  • replied
    Originally posted by redbox View Post
    Or you can add variable bIsDying to your characters, and other character will check it before perform attacks.
    This is the way i wanted to do it, but i created this post in hope that i would get a better answer. Casting to that character and cheking the value adds up a lot of extra code (i use "GetCurrentlyPercivedActors" in muliple places for a lot of checks and perception updates) and this would reduces performance by a little bit.. Thanks anyway.

    Leave a comment:


  • replied
    Or you can add variable bIsDying to your characters, and other character will check it before perform attacks.

    Leave a comment:


  • started a topic Make AIPerception ignore a certain actor

    Make AIPerception ignore a certain actor

    Hello, so i have a UAIPerceptionComponent that detects "hostile" actors using the team perception and attacks them. When an character is killed, i want all remaining actors to ignore him. How can i acomplish that? I tryed changing the "dead" actor's team to be "neutral" but it doesen't seem to have any effect at all. Maybe i have to force an update for the Perception? Can i do that? Is there any other better way to do this?
Working...
X