Object A is active at scene load and contains UnityEvent. Object B is inactive at scene load and contains function referenced by UnityEvent in Object A. Object A invokes its UnityEvent while Object B is still inactive. In this situation, instead of Awake() being called on Object B and the function being invoked, there is instead a null-reference exception inside the UnityEvent ("Object reference not set to an instance of an object") because Awake() was not invoked. NullReferenceException: Object reference not set to an instance of an object ResolutionDisplayManager.Refresh () (at Assets/Scripts/Display/Options/ResolutionDisplayManager.cs:19) UnityEngine.Events.InvokableCall.Invoke (System.Object args) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:110) UnityEngine.Events.InvokableCallList.Invoke (System.Object parameters) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:563) UnityEngine.Events.UnityEventBase.Invoke (System.Object parameters) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:714) UnityEngine.Events.UnityEvent.Invoke () (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent_0.cs:53) ViewportManager.Refresh () (at Assets/Scripts/Managers/ViewportManager.cs:76) ViewportManager.Start () (at Assets/Scripts/Managers/ViewportManager.cs:39) Should I report this as a bug, or is this intended behaviour? According to the Unity manual: "(If a GameObject is inactive during start up Awake is not called until it is made active, or a function in any script attached to it is called.)" So it looks like this *should* be working, and when I start the game with Object B active instead of inactive, it does work.