x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Add event to a child actor being destroyed

I'm trying to make a system where if a (spawned) child actor is destroyed, it will repeat the script that spawned it. I've figured out how to spawn the first child actor, but have no idea how to set a variable or add an event to when that child actor is destroyed.

Help would be greatly appreciated!

Pictures here: https://imgur.com/a/PgAeo

Product Version: UE 4.18
Tags:
more ▼

asked Dec 01 '17 at 02:37 PM in Blueprint Scripting

avatar image

Redloko
6

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

Right click: Type Bind Event to OnDestroyed and create an event to be called when the actor is destroyed. Connect the in pin from the Bind Event node on the BeginPlay event, to create the listener as soon as possible.

more ▼

answered Dec 01 '17 at 10:59 PM

avatar image

Unzkilled
290 2 7 9

I think this method (delegate binding) does not do what OP asked directly in this context because unfortunately the OnDestroyed event can only accept self as an argument, i.e., the parent instead of any of its children if the event is set in the parent class.

(comments are locked)
10|2000 characters needed characters left

I stumbled upon this question while trying to create a spawner class that is able to spawn children of an arbitrary blueprint class.

The way I went about it was to create an event in the parent, named ChildDead which does what I want (just prints "child died" in my example):

alt text

Then in each child class I hardcode the overriden EventDestroyed. I get a reference to the parent using GetParentActor, cast it to the parent class and call the previously defined ChildDead parent event. GetParentActor works only in children spawned through a Child Actor Component:

alt text

This approach seems acceptable for a small number of classes but gets annoying / messy quickly for an arbitrary number of them. Slightly messier if you have multiple classes of potential parents. Maybe it becomes more manageable if pulled from a blueprint library.

I wonder if it can be done cleanly by creating a custom component that is created and inserted in the child during runtime.

more ▼

answered Apr 24 '19 at 04:30 AM

avatar image

armadillo_mole
1 1

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question