Unity3D生成PC端可执行程序后功能丢失解决办法

最近做毕设的时候好几次出现了Unity生成PC端可执行程序之后部分功能丢失的问题,明明在Unity里面运行的时候一切都好,生成exe之后就不行啦!

比如我毕设游戏里的小人儿,在Unity里面要是没落到岛上就会显示游戏结束了,但是生成可执行程序之后它却无限地坠落了下去,也不显示游戏结束界面了。偶很生气,于是在网上搜索了很多的解决办法,最终把问题解决啦!所以想把我试过的有用的解决办法和自己总结的一些经验写个博客记录一下!也方便毕设以后再坏了回来找找嘻嘻嘻嘻

方法一:使用development mode生成可执行程序检查bug

生成可执行程序以后功能丢失,最原始的一个原因可能是工程有bug。使用development mode生成可执行程序后,在运行可执行程序时会自动进行编译检错,这时修改相应的报错即可。

windows上unity导出mac版本exe unity导出pc_可执行程序

比如我遇到的问题就是,我的可执行文件会向相对路径文件夹中的txt文件输出实验数据,而我在相应的路径没有创建那个文件夹,那肯定是不行呀!工程只会帮忙创建txt文件,却不会帮忙创建文件夹。这一类的细节问题很容易被忽略,如果不是使用了development mode生成可执行文件,我可能需要很久才能发现解决这个问题。

方法二:补全丢失的Shader

在生成可执行程序并运行后,如果在原始的Unity工程中发现了一系列有关shader的报错,那么可能是在生成可执行程序时有shader丢失了。这时点击 Edit -> Project Settings -> Graphics

windows上unity导出mac版本exe unity导出pc_txt文件_02


将报错中丢失的shader添加到Always Included Shaders中即可(注意要修改Size的大小)

windows上unity导出mac版本exe unity导出pc_可执行文件_03

方法三:复制dll文件到Asset文件夹中

可执行文件生成后功能丢失问题还可能与dll文件缺失有关, 将Unity源文件夹中 C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity 路径下所有I18N开头的dll文件复制到自己Unity工程的Asset文件夹中即可。