Unity发布exe安装包
发表于2018-08-28
当项目开发完成以后,对于我们的开发人员来说,最后一步就是去打包,其中Unity打包出来的PC项目是两个文件,一个.exe文件,一个Data文件夹。如果想运行,必须两个一块才能正常运行。
Window提供了可以对这个生成安装程序的方法,但下面要给大家介绍的是一个非常快捷方便的办法。使用RAR的自解压。
文档
如何使用winrar命令压缩文件夹,都可以在“WinRAR帮助文件”中找到
代码如下:
public static void GenerateWinExe(BuildTarget target, string pathToBuiltProject) { if (target != BuildTarget.StandaloneWindows) { return; } var rootFolder = Path.GetDirectoryName(pathToBuiltProject); var fileName = Path.GetFileNameWithoutExtension(pathToBuiltProject); var configFilePath = string.Format("{0}/{1}_sfx.txt", SFXConfigFolder, fileName); var buildAsExe = File.Exists(configFilePath); var exePath = Path.GetDirectoryName(rootFolder) + "/" + Path.GetFileName(rootFolder) + (buildAsExe ? ".exe" : ".rar"); FileUtil.DeleteFileOrDirectory(exePath); var argList = ProcessHelper.CreateArgumentsContainer(); var regKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe"; string winrarPath = null; try { var regKey = Registry.LocalMachine.OpenSubKey(regKeyPath); winrarPath = regKey.GetValue("").ToString(); regKey.Close(); } catch (Exception e) { } if (string.IsNullOrEmpty(winrarPath)) { winrarPath = "WinRAR.exe"; } argList.Add(winrarPath); argList.Add("a"); argList.Add("-r"); argList.Add("-ep1"); if (buildAsExe) { argList.Add("-sfx"); argList.Add("-iicon" + string.Format("{0}/{1}.ico ", SFXConfigFolder, fileName)); argList.Add("-scuc"); argList.Add("-z" + configFilePath); } argList.Add(exePath); argList.Add(rootFolder + "/*.*"); var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo()); ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList)); p.WaitForExit(); Debug.Log(p.StandardOutput.ReadToEnd()); }
1.通过注册表获取WinRAR的安装路径,如果没获取到,有可能安装的绿色版,可以在path里面配置路径,然后直接使用winrar.exe
2.添加自解压模块
3.添加图标
自解压模块
Path=默认安装路径 SavePath Setup=游戏名.exe Shortcut=D, 游戏名.exe, , , 快捷方式名,
1.设置默认安装路径
2.记录安装路径,下次安装会直接找到这个路径
3.自解压之后自动运行游戏
4.在桌面创建快捷方式
图标
图标得使用“转ICO.exe”之类的软件制作,否则不会在不同分辨率之下,有对应的图标。