コード例 #1
0
ファイル: GamePackUI.cs プロジェクト: moto2002/snowbattle
    //-----------------------------------------------------------------------------
    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);
    }
コード例 #2
0
ファイル: GamePackUI.cs プロジェクト: moto2002/snowbattle
    //-----------------------------------------------------------------------------
    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);
            }
        }
    }
コード例 #3
0
ファイル: BuildGameCMD.cs プロジェクト: moto2002/snowbattle
    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);
    }
コード例 #4
0
ファイル: BuildGameCMD.cs プロジェクト: moto2002/snowbattle
    //--------------------------------------------------------------------------------------------
    // 打包场景文件
    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");
    }