前不久用Unity写了一个Socket的聊天软件(其实是为了交网络编程的课程设计),UI是用以前下的官方UGUI的演示示例改的,大概是这个样子
自认为狂拽酷炫吊炸天,实际也不过如此,但是最近又兴趣使然,没错这次不是为了交课设了,准备做一款可以局域网联网的卡牌游戏,在做类似CS,红警之类的大厅建房间这种东东的时候花了几个小时踩了前不久踩过的坑,实在是很无语。
Socket监听使用循环的时候一般是死循环并且放在线程中,在退出时如果不结束线程会导致UI卡住,这时早就明白的。
Unity的线程结束要放在OnDestroy中也是早就明白的。
但是尼玛我有一次把结束线程的代码放在了Destroy()而不是OnDestroy()中 ,我真是。。。。。导致Unity在第一次执行的时候没有问题,在第二次执行的时候就会卡住,无论我怎么结束线程也不行。
白白浪费我几个小时的时间,所以要切记!!
游戏结束记得关闭所有线程(最好是条件正常关闭),如果没有设置标识符,那就只能在OnDestroy()中把abort()扔进去了,切记是OnDestroy()
话说要不要把做的聊天源码发上来凑篇博文的说,话说要不要把以前写的东西搬运过来的说,好像HR要看的说