Unity命令行打包

时间:2024-04-14 13:35:22

http://www.66acg.com/?post=137

补充

unity编辑器端获取打包命令行自定义参数,这个可以获取到所有打包时的参数

string[] runArgs = System.Environment.GetCommandLineArgs();

一、在Assets\Editor目录下放个脚本

using UnityEngine;
using UnityEditor;
using System;
using System.IO;
using System.Collections.Generic; /// <summary>
/// 命令行批处理工具类
/// </summary>
public class Batchmode { static List<string> levels = new List<string>();
static string keystoreFile = @"D:\keystore.txt"; public static void BuildAndroid() { if(!File.Exists(keystoreFile))
throw new Exception("Not find keystore file"); StreamReader sr = File.OpenText(keystoreFile);
string password = sr.ReadToEnd().Trim(); PlayerSettings.Android.keystorePass = password;
PlayerSettings.Android.keyaliasPass = password; foreach ( EditorBuildSettingsScene scene in EditorBuildSettings.scenes ) {
if ( !scene.enabled ) continue;
levels.Add( scene.path );
}
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android);
string res = BuildPipeline.BuildPlayer( levels.ToArray(), "android.apk", BuildTarget.Android, BuildOptions.None );
if (res.Length > 0)
throw new Exception("BuildPlayer failure: " + res);
}
}

二、写个批处理(路径改成自己的工程路径)

@echo off
@set unity="C:\Program Files\Unity\Editor\Unity.exe"
echo 正在生成APK文件...
%unity% -batchmode -quit -nographics -executeMethod Batchmode.BuildAndroid -logFile D:\Editor.log -projectPath "D:\China\2014-11-12_client_wushen_android"
echo APK文件生成完毕!
pause