
我把一个界面chatUI做成prefab,prefab里面绑定了脚本,脚本里面添加socketIO发送接收数据,第一次加载chatUI prefab的时候,收到服务器返回的消息 里,打印self.node.name可以正常显示是ChatUI,关闭界面(销毁prefab)后,再次加载,收到服务器的消息后,打印self.node.name就报错了,请教大神们这是为什么


我把一个界面chatUI做成prefab,prefab里面绑定了脚本,脚本里面添加socketIO发送接收数据,第一次加载chatUI prefab的时候,收到服务器返回的消息 里,打印self.node.name可以正常显示是ChatUI,关闭界面(销毁prefab)后,再次加载,收到服务器的消息后,打印self.node.name就报错了,请教大神们这是为什么

socket.on 方法在prefab销毁时没有解除监听.
楼上正解,请在组件的 onDestroy 或者 onDisable 中反注册 socket
解决了,谢谢两位
onDestroy里添加socket.removeListener(事件名)即可