Unity开发inputSystem的重复注册问题的解决
Unity开发inputSystem的重复注册问题的解决
‘祈止’Unity新版输入系统的事件重复注册问题
最近在学习unity,边学别做了个小游戏。发现一个奇怪的bug,游戏在加载的时候会莫名其妙的报错,出现空指针异常。还会让我的ScriptableObject的文件失效。
反复测试发现,错误出现都是在场景加载的时候。进一步发现是在暂停回到主菜单后再次开始游戏的时候。
检查后发现是inputSystem的问题,这里是我的源码:
1 | private void Awake() |
只看这段代码其实没问题。但是,游戏在回到开始界面的时候,这里的inputSystem会再次重复执行Awake()。这样就会有两个gameControl同时存在。事件也会注册两次,这样就会出现异常。
解决方法就是写个资源回收的函数OnDestroy,以下是代码:
1 | private void OnDestroy() |
这里取消了事件,删除了gameControl就解决问题了。