12号交完论文以后开始干某易最后一个入职任务——Unity任务, 其实客户端部分的任务内容总体上还是较为简单的, 不知道服务端部分如何, 反正对于服务端部分的开发经验本人目前几乎为0, 希望踩的坑能少点呗…… 言归正传, 在导入一个粒子特效包以后, 手贱地让Unity帮我升级了整个工程, 然后就差点GG了……
Unity提示
error CS0117: 'EditorSceneManager' does not contain a definition for 'IsGameObjectInScene'
在StackOverflow上求助发现是资源包的版本太新, 而我目前使用的Unity版本较老导致的缘故. 那好呗, 我就把工程目录下的Library与obj两个文件夹删除再让Unity重新编译一遍我的工程呗…… 然鹅, 这个被很多大佬提出来的方法并无效, 目前我还不清楚原因. 无奈, 我只能新建工程, 然后把我的Assets与ProjectSettings文件夹移过去.
显然, 这个方法是有效的, 但要同时更改我的本地git目录, 在需要将所有文件push到我的git远端时, 由于担心远端代码的版本与本地版本不一致, 导致git会阻止进行push, 我使用
git push -u origin master -f
进行强制push, 然鹅这样带来的后果是我以前的commit历史全部丢失了…… 使用git reflog命令依旧无法找回, 心累, 就先酱紫叭…… 幸好我一般没有回滚代码的习惯.
总结坑点有二:
1. 在Unity中导入版本不一致的资源包时不要让Unity自动帮你升级工程;
2. 当需要进行强制push的时候, 建议使用先拉后推的方法, 即使用git pull –rebase命令, 否则会面临丢失commit历史的问题, 当然如果目的仅仅是为了初始化一个仓库, 那倒是没啥所谓.