ScriptableObjects with UnityAction?

Can ScriptableObjects have UnityActions (or events) that can be assigned via the inspector? If so, how?

Yes ScriptableObjects can contain UnityEvents, however keep the following in mind:

  • UnityEvents are serializable and therefore can be assigned from the inspector, UnityAction can not. Of course you could use UnityActions at runtime but you can’t assign them in the inspector.
  • Since ScriptableObjects are serialized as standalone assets you can only assign methods of objects which are also standalone assets. In other words either another ScriptableObject or a prefab asset.

That means you can’t assign a method of an object instance in a scene as those objects are not assets and can’t be referenced from outside the scene.