有没有类似Monobehaviour中OnDestroy的方法

当切换场景时,displayObject对应的gamObject被销毁了,我想在销毁时做些Dispose和注销事件等操作,可以订阅哪个事件来处理被销毁时的逻辑吗?
因为有时候这边会遇到这样一些空异常的报错信息:
NullReferenceException: Object reference not set to an instance of an object
FairyGUI.DisplayObject.SetXY (System.Single xv, System.Single yv) (at Assets/3rd/FairyGUI/Scripts/Core/DisplayObject.cs:370)
FairyGUI.GLoader.UpdateLayout () (at Assets/3rd/FairyGUI/Scripts/UI/GLoader.cs:615)
FairyGUI.GLoader.LoadFromPackage (System.String itemURL) (at Assets/3rd/FairyGUI/Scripts/UI/GLoader.cs:403)
FairyGUI.GLoader.LoadContent () (at Assets/3rd/FairyGUI/Scripts/UI/GLoader.cs:378)
FairyGUI.GLoader.set_url (System.String value) (at Assets/3rd/FairyGUI/Scripts/UI/GLoader.cs:88)
FairyGUI.GLoader.set_icon (System.String value) (at Assets/3rd/FairyGUI/Scripts/UI/GLoader.cs:96)
FairyGUI.GearIcon.Apply () (at Assets/3rd/FairyGUI/Scripts/UI/Gears/GearIcon.cs:41)
FairyGUI.GObject.HandleControllerChanged (FairyGUI.Controller c) (at Assets/3rd/FairyGUI/Scripts/UI/GObject.cs:1333)
FairyGUI.GComponent.ApplyController (FairyGUI.Controller c) (at Assets/3rd/FairyGUI/Scripts/UI/GComponent.cs:917)
FairyGUI.Controller.set_selectedIndex (System.Int32 value) (at Assets/3rd/FairyGUI/Scripts/UI/Controller.cs:78)
View_Btn.SetBtnState (System.Boolean active) (at View_Btn.cs:86)
View_Btn.set_Active (System.Boolean value) (at View_Btn.cs:22)
View_Btn.UpdateBtnState () (at View_Btn.cs:79)
View_Btn.OnCdChanged (System.Int32 cd) (at View_Btn.cs:70)
Model.set_Cd (System.Int32 value) (at Model.cs:66)
Model.UpdateCd (System.Int32 v) (at Model.cs:141)
Controller.Update (System.Single delta) (at Controller.cs:173)
Timer.InvlCb (System.Single addUpSeconds) (at TimerModule/RepeatTimer)
Timer.Operate () (at TimerModule/RepeatTimer)
Timer.Update () (at TimerModule/Timer)
TimerManager.Update () (at TimerModule/TimerManager)
 
TimerManager.Update是自身订阅的一个事件,但是场景切换后由于没有注销,事件依然生效,displayObject也会相应,但是displayObject绑定的gameObject已经被销毁了,就空异常了
已邀请:

谷主

赞同来自:

你可以自己挂一个Monobehavior上去啊。每个UI元件都有gameobject的。不过这不符合fgui的用法,我不建议这样做。应该在你的逻辑的onDestroy里销毁持有的UI。

要回复问题请先登录注册