我会在Unity3D语句的OnDestroy()中初始化事件,因为在重新加载场景后,一些被破坏的脚本获取事件并在gameObject上抛出MissingReferenceException。
这里我是如何声明事件的:
public delegate void SelectDelegate();
public static event SelectDelegate OnSelected;
以及我如何开始
void Destroy()
{
OnSelected = new SelectDelegate(OnSelected); //Dont work :'(
}
如何初始化事件以重新加载场景
答案 0 :(得分:0)
好的,我将在这里尝试一些事情:
myClassInstance.Onselected += MyHandlerFunction;
之类的内容。这通常在OnEnable()函数中完成。要清理,我使用myClassInstance.Onselected -= MyHandlerFunction;
删除OnDisable()函数中的委托。if( OnSelected != null ) OnSelected();