我有一个关于unity3d(在mac上工作)的项目,我正在尝试从命令行生成android apk文件。这可行吗?
现在我在assets/editor中有一个performbild.cs文件
我在里面打电话:
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);
不过,这只是为它生成android项目,而不是apk。
我是否可以使用cs构建脚本直接生成apk,或者我必须生成项目,将其导入eclipse,然后构建apk?
谢谢你
其他信息:
以下是我脚本中的完整方法
[UnityEditor.MenuItem("CUSTOM/Test Android Build Step")]
static void androidBuild ()
{
Debug.Log("Command line build android version\n------------------\n------------------");
string[] scenes = GetBuildScenes();
string path = GetBuildPathAndroid();
if(scenes == null || scenes.Length==0 || path == null)
return;
Debug.Log(string.Format("Path: \"{0}\"", path));
for(int i=0; i<scenes.Length; ++i)
{
Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i]));
}
Debug.Log("Starting Android Build!");
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);
BuildPipeline.buil
}
我在命令行中使用以下命令调用它:
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -executeMethod PerformBuild.androidBuild
我已经安装并配置了android sdk
最佳答案
只需从AcceptExternalModificationsToPlayer
中删除BuildOptions
。
buildoptions.acceptexternalmodificationstoplayer
在android上,此设置将创建一个新的eclipse项目。现有的eclipse项目设置更改将被丢弃。
来源:
http://docs.unity3d.com/ScriptReference/BuildOptions.AcceptExternalModificationsToPlayer.html
好吧,我必须承认,这并不是百分之百的清楚,但这是要改变的“开关”,直接构建一个.apk
文件,而不是创建一个android项目。
所以在你的情况下,改变一下
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.AcceptExternalModificationsToPlayer);
到
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.None);
您可能需要查看所有不同的
BuildOptions
,例如,如果您想使您的构建可调试(以便能够将monodevelop调试器附加到它=>BuildOptions.Development | BuildOptions.AllowDebugging
)来源:
http://docs.unity3d.com/ScriptReference/BuildOptions.html