How are timeline signal emitters able to hold scene references?

First time post (I hope this is the right place). While working with timeline, I noticed how inspecting a signal emitter (the little marker) shows you the signal receiver as well. This way, you’re able to update the receiver through the emitter.

Specifically, you can update the receiver’s UnityEvent by assigning scene objects to the events on the receiver through the emitter.

Now this is interesting. From my belief, signal emitters aren’t bound to a scene (I’m not sure if they’re assets). As a result you shouldn’t be able to assign anything from the scene to its properties.

But I really like this idea, and I’m trying to recreate something like it with a timeline clip asset; where I can assign scene objects to the clip’s inspector and it reflects in the track binding object. The problem is I can’t assign scene objects to an asset.

So my question is, how was the signal emitter’s editor script designed to allow scene references to be assigned to the emitter, and how can I replicate this?

Don’t have timeline in front of me but it smells like these signals are actually assets, so just like a ScriptableObject:

1 Like