Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
事件注销的问题
丶CK发起了问答2017-10-11
7
回复
964
浏览

这边关闭的时,注销事件的时候

这边就报空指针 试过调整脚本顺序  等等方法都没办法解决,注销事件 是通过中介调用的 在当前注册事件类OnDestroy  方法里面-=的 这个游戏物体是在场景中存在的 开始时,是能找到的 就在关闭游戏时候想去注销事件,找不到该游戏物体。好生奇怪,老师求助 

所有回复
  • siki 2017-10-12

    解决的错误的话,先从第一个错误开始,先看最上面的空指针错误的位置。

    可能原因:

    在这里使用GameFacade的单例对象,在使用的时候,单例对象还没有完成赋值。

    解决办法:

    可以先看下你的最上面的空指针错误的位置的代码

    • 丶CK 2017-10-12

      老师,是在注销事件的时候 对象 rInventoryManager 为null 的 错误也是这处 注销不了事件 上面的几个空指针 都是同一个错误处 rInventoryManager 为null ​
      private void OnDestroy()
      {
      GameFacade.Instance.IventoryManager.OnIventoryChanged -= OnIventoryChanged;
      }
      几处错误 都是 注销时rInventoryManager 为null

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-10-12

    那这里就是 GameFacade.Instance为空了,可能就是 在销毁的时候,GameFacade里面把Instance设置为null了

    ,如果是这样的话,那这里可以先做一下判断 if(GameFacade.Instance!=null )

    • 丶CK 2017-10-12

      老师,如果 这样 那这个事件没有被注销 管理事件的这个类 已经销毁了,这样会有影响吗 ,我自己预想是 挂载到游戏物体身上的脚本 unity 会给自己处理,如果没挂载的脚本 这样会有影响吗 ,按逻辑说事件没有被注销 只是 事件管理类销毁了

      (0) 回复
    • 丶CK 2017-10-12

      最前面,是这样判断的 直接 判断中介是否销毁掉了 但总觉得不妥,怎么说事件都没有被注销。

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-10-12

    因为GameFacade是存放所有事件的,GameFace被销毁了,那么所有事件自然也被销毁了,所以就无须注销了

    • 丶CK 2017-10-12

      好的,就纠结在这个上面 , 谢谢老师,感觉 写着写着 反而有些小毛病非常迷糊的一塌糊涂! = =!!

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!