using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEditor;
|
using System.IO;
|
using System;
|
|
//!!!该文件代码没有被调用
|
public class BuildExtersion
|
{
|
|
public static void BuildMap()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
var levelPattern = "001";
|
var versionsFilePath = Application.dataPath + Path.DirectorySeparatorChar + "Editor/VersionConfigs/Versions.txt";
|
var lines = File.ReadAllLines(versionsFilePath);
|
for (int i = 2; i < lines.Length; i++)
|
{
|
var line = lines[i];
|
var lineStrings = line.Split('\t');
|
if (lineStrings[0] == buildParameters.publisher)
|
{
|
levelPattern = lineStrings[23];
|
break;
|
}
|
}
|
|
if (!string.IsNullOrEmpty(levelPattern))
|
{
|
UpdateLevelSetting.SetCreateRoleLevel(levelPattern);
|
AssetDatabase.Refresh();
|
}
|
|
UpdateLevelSetting.SetAllLevelAssetBundleName();
|
ExcuteBuildAsset("maps", buildParameters);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包地图失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void BuildEffect()
|
{
|
|
}
|
|
public static void BuildMobEffectShader()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
UpdateEffectPrefabSetting.SetAllEffectPrefabAssetBundleName();
|
UpdateMobSetting.SetAllMobAssetBundleName();
|
UpdateShaderSetting.SetAllShaderAssetBundleName();
|
ExcuteBuildAsset("mobeffectshader", buildParameters);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包NPC模型 特效 shader失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void BuildConfig()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
UpdateScriptableObjectsSetting.SetAllScriptableObjectAssetBundleName();
|
ExcuteBuildAsset("config", buildParameters);
|
TableTool.CopyConfigsToOutPutPath(StringUtility.Contact(buildParameters.GetWholeOutPutPath(), "/config"));
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包配置表失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void BuildAudio()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
UpdateAudioSetting.SetAllAudioAssetBundleName();
|
ExcuteBuildAsset("audio", buildParameters);
|
|
// UpdateVideoSetting.SetAllVideoAssetBundleName();
|
// ExcuteBuildAsset("video", buildParameters);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包音效失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void BuildShader()
|
{
|
|
}
|
|
public static void BuildUI()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
AssetSource.allFromEditor = true;
|
//CheckFontSwitch.CheckAndReplaceFontSwitch();
|
UpdateUIPrefabSetting.SetAllUIPrefabAssetBundleName();
|
UpdateUIWindowSetting.SetAllUIWindowAssetBundleName();
|
|
var rechargePattern = 1;
|
var versionsFilePath = Application.dataPath + Path.DirectorySeparatorChar + "Editor/VersionConfigs/Versions.txt";
|
var lines = File.ReadAllLines(versionsFilePath);
|
for (int i = 2; i < lines.Length; i++)
|
{
|
var line = lines[i];
|
var lineStrings = line.Split('\t');
|
if (lineStrings[0] == buildParameters.publisher)
|
{
|
rechargePattern = int.Parse(lineStrings[22]);
|
break;
|
}
|
}
|
|
UpdateSpriteSetting.SetRechargeSkin(rechargePattern);
|
AssetDatabase.Refresh();
|
UpdateSpritePackingSetting.UpdateAllSpritePackingSetting();
|
UpdateSpriteSetting.SetAllSpriteAssetBundleName();
|
|
ExcuteBuildAsset("ui", buildParameters);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包ui失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void BuildBuiltIn()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
var publisher = buildParameters.publisher;
|
BuiltInResourceSetting.SetLaunchBackGround(publisher, buildParameters.buildTarget);
|
BuiltInResourceSetting.SetLoginBackGround(publisher, buildParameters.buildTarget);
|
BuiltInResourceSetting.SetLoginLogo(publisher, buildParameters.buildTarget);
|
UpdateBuiltInSetting.SetBuiltinAssetBundleName();
|
ExcuteBuildAsset("builtin", buildParameters);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("打包builtin失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public static void MakeAssetVersionFile()
|
{
|
try
|
{
|
var buildParameters = new BuildParameters();
|
if (!buildParameters.error)
|
{
|
var fileInfoes = new List<FileInfo>();
|
FileExtersion.GetAllDirectoryFileInfos(buildParameters.GetWholeOutPutPath(), fileInfoes);
|
AssetsVersionMaker.WriteAssetsVersionFile(buildParameters.GetWholeOutPutPath(), fileInfoes);
|
}
|
else
|
{
|
EditorApplication.Exit(1);
|
}
|
}
|
catch (Exception ex)
|
{
|
Debug.Log("生成AssetVersion失败");
|
Debug.Log(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
private static void ExcuteBuildAsset(string category, BuildParameters @params)
|
{
|
var opt = BuildAssetBundleOptions.None;
|
opt |= BuildAssetBundleOptions.ChunkBasedCompression;
|
opt |= BuildAssetBundleOptions.DeterministicAssetBundle;
|
|
AssetBundleBuildExtersion.Build(@params.GetWholeOutPutPath(), category, opt, @params.buildTarget);
|
}
|
|
class BuildParameters
|
{
|
public bool error = false;
|
public string outputPath;
|
public string publisher;
|
public BuildTarget buildTarget;
|
|
public BuildParameters()
|
{
|
try
|
{
|
var args = Environment.GetCommandLineArgs();
|
for (int i = 0; i < args.Length; i++)
|
{
|
var arg = args[i];
|
if (arg.ToLower() == "-outputpath")
|
{
|
outputPath = args[i + 1];
|
}
|
else if (arg.ToLower() == "-buildtarget")
|
{
|
switch (args[i + 1].ToLower())
|
{
|
case "android":
|
buildTarget = BuildTarget.Android;
|
break;
|
case "ios":
|
buildTarget = BuildTarget.iOS;
|
break;
|
case "standalone":
|
buildTarget = BuildTarget.StandaloneWindows;
|
break;
|
}
|
}
|
else if (arg.ToLower() == "-publisher")
|
{
|
publisher = args[i + 1];
|
}
|
}
|
|
error = false;
|
}
|
catch (Exception ex)
|
{
|
error = true;
|
Debug.LogException(ex);
|
EditorApplication.Exit(1);
|
}
|
}
|
|
public string GetWholeOutPutPath()
|
{
|
switch (buildTarget)
|
{
|
case BuildTarget.Android:
|
return StringUtility.Contact(outputPath, "/android");
|
case BuildTarget.iOS:
|
return StringUtility.Contact(outputPath, "/ios");
|
case BuildTarget.StandaloneWindows:
|
return StringUtility.Contact(outputPath, "/standalone");
|
default:
|
return string.Empty;
|
}
|
}
|
}
|
|
}
|