//这里封装了一个简单的通用方法。
public static void BulidTarget(string name, string publicer, string ver, string target, bool isDebug)
{
string app_name = name + ver + publicer;
string target_dir = string.Empty;
string target_name = app_name + ".exe";
BuildTargetGroup targetGroup = BuildTargetGroup.Standalone;
BuildTarget buildTarget = BuildTarget.StandaloneWindows;
string applicationPath = Application.dataPath.Replace("/Assets", "");
target_dir = applicationPath + "/TargetWin";
if (target == "Android")
{
string x86Dir = Application.dataPath + "/Plugins/x86";
string x64Dir = Application.dataPath + "/Plugins/x86_64";
if (Directory.Exists(x86Dir))
{
Directory.Delete(x86Dir, true);
}
if (Directory.Exists(x64Dir))
{
Directory.Delete(x64Dir, true);
}
AssetDatabase.Refresh();
Packager.BuildAndroidResource();
target_dir = applicationPath + "/TargetAndroid";
target_name = app_name + ".apk";
targetGroup = BuildTargetGroup.Android;
buildTarget = BuildTarget.Android;
}
else if (target == "IOS")
{
target_dir = applicationPath + "/TargetIOS";
target_name = app_name;
targetGroup = BuildTargetGroup.iOS;
buildTarget = BuildTarget.iOS;
}
else
{
Packager.BuildWindowsResource();
}
//每次build删除之前的残留
if (Directory.Exists(target_dir))
{
if (File.Exists(target_name))
{
File.Delete(target_name);
}
}
else
{
Directory.CreateDirectory(target_dir);
}
// Player Setting
//
PlayerSettings.companyName = "HF";
//
PlayerSettings.productName = name;
//
PlayerSettings.GetIconSizesForTargetGroup(targetGroup);
//
//
PlayerSettings.defaultInterfaceOrientation = UIOrientation.LandscapeLeft;
PlayerSettings.allowedAutorotateToLandscapeLeft = true;
PlayerSettings.allowedAutorotateToLandscapeRight = true;
PlayerSettings.allowedAutorotateToPortrait = false;
PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
//
PlayerSettings.statusBarHidden = true;
//
PlayerSettings.apiCompatibilityLevel = ApiCompatibilityLevel.NET_2_0_Subset;
//
PlayerSettings.bundleVersion = ver;
//
PlayerSettings.forceSingleInstance = true;
// bug?
//PlayerSettings.gpuSkinning = true;
//
PlayerSettings.renderingPath = RenderingPath.Forward;
//
PlayerSettings.strippingLevel = StrippingLevel.Disabled;
//
PlayerSettings.stripUnusedMeshComponents = true;
string[] SCENES = FindEnabledEditorScenes();
BuildOptions options = BuildOptions.None;
if (isDebug)
{
EditorUserBuildSettings.development = true;
EditorUserBuildSettings.connectProfiler = true;
options |= BuildOptions.Development;
options |= BuildOptions.ConnectWithProfiler;
}
else
{
EditorUserBuildSettings.development = false;
EditorUserBuildSettings.connectProfiler = false;
}
//开始Build场景,等待吧~
GenericBuild(SCENES, target_dir + "/" + target_name, buildTarget, options);
// 反定义宏
PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, "");
}