//----------------------------------------------------------------------------- public static string NtfPack(List <string> vPths, List <string> vfAry, string file, BuildTarget tgt, bool silence , GameBundleVersionControl version, PackageVersion.Version cfgVersion) { List <string> fAry = new List <string>(); if (vfAry != null) { fAry.AddRange(vfAry); } foreach (string sPth in vPths) { List <string> vfs = ArchiveUtil.NtfGetFiles(sPth, true, ArchiveUtil.mSkips); fAry.AddRange(vfs); } BuildGameCMD.BuildGamePack(file, fAry, tgt, silence, version); string packageName = Path.GetFileName(file); packageName = packageName.ToLower(); if (version.m_version.HavePackage(packageName)) { PackageVersion.Version v = version.m_version.LookupPackageVersion(packageName); v.m_isExternPackage = cfgVersion.m_isExternPackage; v.m_isAliveInRuntime = cfgVersion.m_isAliveInRuntime; version.m_version.AddPackage(packageName, v); } return(packageName); }
//----------------------------------------------------------------------------- public static void NtfPackEachFile(string srcFolder, string targetFolder, BuildTarget tgt, bool silence , GameBundleVersionControl version, PackageVersion.Version cfgVersion) { List <string> allNeedPackedFile = ArchiveUtil.NtfGetFiles(srcFolder, true, ArchiveUtil.mSkips); List <string> procFileList = new List <string>(); string targetPackFile; foreach (string singleFile in allNeedPackedFile) { procFileList.Clear(); procFileList.Add(singleFile); string[] pathsOfThisFile = singleFile.Split(new char[] { '/', '\\' }, System.StringSplitOptions.RemoveEmptyEntries); if (pathsOfThisFile.Length < 3) { targetPackFile = singleFile.Replace('/', '_'); targetPackFile = targetPackFile.Replace('\\', '_'); targetPackFile = targetFolder + "/" + targetPackFile + ".pack"; } else { targetPackFile = targetFolder + "/"; for (int i = 2; i < pathsOfThisFile.Length; i++) { targetPackFile += "_" + pathsOfThisFile[i]; } targetPackFile += ".pack"; } targetPackFile = targetPackFile.Replace(" ", ""); targetPackFile = targetPackFile.ToLower(); string packageName = Path.GetFileName(targetPackFile); packageName = packageName.ToLower(); BuildGameCMD.BuildGamePack(targetPackFile, procFileList, tgt, silence, version); if (version.m_version.HavePackage(packageName)) { PackageVersion.Version v = version.m_version.LookupPackageVersion(packageName); v.m_isExternPackage = cfgVersion.m_isExternPackage; v.m_isAliveInRuntime = cfgVersion.m_isAliveInRuntime; version.m_version.AddPackage(packageName, v); } } }
static public string BuildGameScene(string file, string szScene, BuildTarget tgt, GameBundleVersionControl version) { file = file.ToLower(); string pkgName = Path.GetFileName(file); pkgName = pkgName.ToLower(); string sceneFileName = ArchiveUtil.NtfPathAfterAssets(szScene).ToLower(); if (!version.UpdateFileMD5(sceneFileName, pkgName)) { return(""); } string[] szAry = new string[] { szScene }; string szMsg = BuildPipeline.BuildStreamedSceneAssetBundle(szAry, file, tgt); if (string.IsNullOrEmpty(szMsg)) { AppendResPackItm(szAry, file, tgt); version.IncreasePackageVersion(pkgName); } return(szMsg); }
//-------------------------------------------------------------------------------------------- // 打包场景文件 static public void BuildGameScene(string file, List <string> fLst, BuildTarget tgt, GameBundleVersionControl version) { //BuildOptions op = BuildOptions.BuildAdditionalStreamedScenes; //string szMsg = BuildPipeline.BuildPlayer(fLst.ToArray(), file, tgt, op); file = file.ToLower(); string pkgName = Path.GetFileName(file); pkgName = pkgName.ToLower(); bool needPackage = false; foreach (string n in fLst) { string sceneFileName = ArchiveUtil.NtfPathAfterAssets(n).ToLower(); if (version.UpdateFileMD5(sceneFileName, pkgName)) { needPackage = true; break; } } if (!needPackage) { return; } string szMsg = BuildPipeline.BuildStreamedSceneAssetBundle(fLst.ToArray(), file, tgt); if (string.IsNullOrEmpty(szMsg)) { AppendResPackItm(fLst.ToArray(), file, tgt); version.IncreasePackageVersion(pkgName); szMsg = @"操作成功"; } EditorUtility.DisplayDialog(@"操作已结束", @"消息: " + szMsg, "Ok"); }