123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 loyalsoft. All rights reserved.
- // Homepage: http://www.game7000.com/
- // Feedback: http://www.game7000.com/
- //------------------------------------------------------------
- using UnityEditor;
- using UnityEngine;
- namespace UnityGameFramework.Editor.ResourceTools
- {
- /// <summary>
- /// 生成资源事件处理函数。
- /// </summary>
- public interface IBuildEventHandler
- {
- /// <summary>
- /// 获取当某个平台生成失败时,是否继续生成下一个平台。
- /// </summary>
- bool ContinueOnFailure
- {
- get;
- }
- /// <summary>
- /// 所有平台生成开始前的预处理事件。
- /// </summary>
- /// <param name="productName">产品名称。</param>
- /// <param name="companyName">公司名称。</param>
- /// <param name="gameIdentifier">游戏识别号。</param>
- /// <param name="gameFrameworkVersion">游戏框架版本。</param>
- /// <param name="unityVersion">Unity 版本。</param>
- /// <param name="applicableGameVersion">适用游戏版本。</param>
- /// <param name="internalResourceVersion">内部资源版本。</param>
- /// <param name="platforms">生成的目标平台。</param>
- /// <param name="assetBundleCompression">AssetBundle 压缩类型。</param>
- /// <param name="compressionHelperTypeName">压缩解压缩辅助器类型名称。</param>
- /// <param name="additionalCompressionSelected">是否进行再压缩以降低传输开销。</param>
- /// <param name="forceRebuildAssetBundleSelected">是否强制重新构建 AssetBundle。</param>
- /// <param name="buildEventHandlerTypeName">生成资源事件处理函数名称。</param>
- /// <param name="outputDirectory">生成目录。</param>
- /// <param name="buildAssetBundleOptions">AssetBundle 生成选项。</param>
- /// <param name="workingPath">生成时的工作路径。</param>
- /// <param name="outputPackageSelected">是否生成单机模式所需的文件。</param>
- /// <param name="outputPackagePath">为单机模式生成的文件存放于此路径。若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="outputFullSelected">是否生成可更新模式所需的远程文件。</param>
- /// <param name="outputFullPath">为可更新模式生成的远程文件存放于此路径。若游戏是网络游戏,生成结束后应将此目录上传至 Web 服务器,供玩家下载用。</param>
- /// <param name="outputPackedSelected">是否生成可更新模式所需的本地文件。</param>
- /// <param name="outputPackedPath">为可更新模式生成的本地文件存放于此路径。若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="buildReportPath">生成报告路径。</param>
- void OnPreprocessAllPlatforms(string productName, string companyName, string gameIdentifier, string gameFrameworkVersion, string unityVersion, string applicableGameVersion, int internalResourceVersion,
- Platform platforms, AssetBundleCompressionType assetBundleCompression, string compressionHelperTypeName, bool additionalCompressionSelected, bool forceRebuildAssetBundleSelected, string buildEventHandlerTypeName, string outputDirectory, BuildAssetBundleOptions buildAssetBundleOptions,
- string workingPath, bool outputPackageSelected, string outputPackagePath, bool outputFullSelected, string outputFullPath, bool outputPackedSelected, string outputPackedPath, string buildReportPath);
- /// <summary>
- /// 某个平台生成开始前的预处理事件。
- /// </summary>
- /// <param name="platform">生成平台。</param>
- /// <param name="workingPath">生成时的工作路径。</param>
- /// <param name="outputPackageSelected">是否生成单机模式所需的文件。</param>
- /// <param name="outputPackagePath">为单机模式生成的文件存放于此路径。若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="outputFullSelected">是否生成可更新模式所需的远程文件。</param>
- /// <param name="outputFullPath">为可更新模式生成的远程文件存放于此路径。若游戏是网络游戏,生成结束后应将此目录上传至 Web 服务器,供玩家下载用。</param>
- /// <param name="outputPackedSelected">是否生成可更新模式所需的本地文件。</param>
- /// <param name="outputPackedPath">为可更新模式生成的本地文件存放于此路径。若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- void OnPreprocessPlatform(Platform platform, string workingPath, bool outputPackageSelected, string outputPackagePath, bool outputFullSelected, string outputFullPath, bool outputPackedSelected, string outputPackedPath);
- /// <summary>
- /// 某个平台生成 AssetBundle 完成事件。
- /// </summary>
- /// <param name="platform">生成平台。</param>
- /// <param name="workingPath">生成时的工作路径。</param>
- /// <param name="outputPackageSelected">是否生成单机模式所需的文件。</param>
- /// <param name="outputPackagePath">为单机模式生成的文件存放于此路径。若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="outputFullSelected">是否生成可更新模式所需的远程文件。</param>
- /// <param name="outputFullPath">为可更新模式生成的远程文件存放于此路径。若游戏是网络游戏,生成结束后应将此目录上传至 Web 服务器,供玩家下载用。</param>
- /// <param name="outputPackedSelected">是否生成可更新模式所需的本地文件。</param>
- /// <param name="outputPackedPath">为可更新模式生成的本地文件存放于此路径。若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="assetBundleManifest">AssetBundle 的描述文件。</param>
- void OnBuildAssetBundlesComplete(Platform platform, string workingPath, bool outputPackageSelected, string outputPackagePath, bool outputFullSelected, string outputFullPath, bool outputPackedSelected, string outputPackedPath, AssetBundleManifest assetBundleManifest);
- /// <summary>
- /// 某个平台可更新模式版本列表文件的输出事件。
- /// </summary>
- /// <param name="platform">生成平台。</param>
- /// <param name="versionListPath">可更新模式版本列表文件的路径。</param>
- /// <param name="versionListLength">可更新模式版本列表文件的长度。</param>
- /// <param name="versionListHashCode">可更新模式版本列表文件的校验值。</param>
- /// <param name="versionListCompressedLength">可更新模式版本列表文件压缩后的长度。</param>
- /// <param name="versionListCompressedHashCode">可更新模式版本列表文件压缩后的校验值。</param>
- void OnOutputUpdatableVersionListData(Platform platform, string versionListPath, int versionListLength, int versionListHashCode, int versionListCompressedLength, int versionListCompressedHashCode);
- /// <summary>
- /// 某个平台生成结束后的后处理事件。
- /// </summary>
- /// <param name="platform">生成平台。</param>
- /// <param name="workingPath">生成时的工作路径。</param>
- /// <param name="outputPackageSelected">是否生成单机模式所需的文件。</param>
- /// <param name="outputPackagePath">为单机模式生成的文件存放于此路径。若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="outputFullSelected">是否生成可更新模式所需的远程文件。</param>
- /// <param name="outputFullPath">为可更新模式生成的远程文件存放于此路径。若游戏是网络游戏,生成结束后应将此目录上传至 Web 服务器,供玩家下载用。</param>
- /// <param name="outputPackedSelected">是否生成可更新模式所需的本地文件。</param>
- /// <param name="outputPackedPath">为可更新模式生成的本地文件存放于此路径。若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="isSuccess">是否生成成功。</param>
- void OnPostprocessPlatform(Platform platform, string workingPath, bool outputPackageSelected, string outputPackagePath, bool outputFullSelected, string outputFullPath, bool outputPackedSelected, string outputPackedPath, bool isSuccess);
- /// <summary>
- /// 所有平台生成结束后的后处理事件。
- /// </summary>
- /// <param name="productName">产品名称。</param>
- /// <param name="companyName">公司名称。</param>
- /// <param name="gameIdentifier">游戏识别号。</param>
- /// <param name="gameFrameworkVersion">游戏框架版本。</param>
- /// <param name="unityVersion">Unity 版本。</param>
- /// <param name="applicableGameVersion">适用游戏版本。</param>
- /// <param name="internalResourceVersion">内部资源版本。</param>
- /// <param name="platforms">生成的目标平台。</param>
- /// <param name="assetBundleCompression">AssetBundle 压缩类型。</param>
- /// <param name="compressionHelperTypeName">压缩解压缩辅助器类型名称。</param>
- /// <param name="additionalCompressionSelected">是否进行再压缩以降低传输开销。</param>
- /// <param name="forceRebuildAssetBundleSelected">是否强制重新构建 AssetBundle。</param>
- /// <param name="buildEventHandlerTypeName">生成资源事件处理函数名称。</param>
- /// <param name="outputDirectory">生成目录。</param>
- /// <param name="buildAssetBundleOptions">AssetBundle 生成选项。</param>
- /// <param name="workingPath">生成时的工作路径。</param>
- /// <param name="outputPackageSelected">是否生成单机模式所需的文件。</param>
- /// <param name="outputPackagePath">为单机模式生成的文件存放于此路径。若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="outputFullSelected">是否生成可更新模式所需的远程文件。</param>
- /// <param name="outputFullPath">为可更新模式生成的远程文件存放于此路径。若游戏是网络游戏,生成结束后应将此目录上传至 Web 服务器,供玩家下载用。</param>
- /// <param name="outputPackedSelected">是否生成可更新模式所需的本地文件。</param>
- /// <param name="outputPackedPath">为可更新模式生成的本地文件存放于此路径。若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后打包 App 即可。</param>
- /// <param name="buildReportPath">生成报告路径。</param>
- void OnPostprocessAllPlatforms(string productName, string companyName, string gameIdentifier, string gameFrameworkVersion, string unityVersion, string applicableGameVersion, int internalResourceVersion,
- Platform platforms, AssetBundleCompressionType assetBundleCompression, string compressionHelperTypeName, bool additionalCompressionSelected, bool forceRebuildAssetBundleSelected, string buildEventHandlerTypeName, string outputDirectory, BuildAssetBundleOptions buildAssetBundleOptions,
- string workingPath, bool outputPackageSelected, string outputPackagePath, bool outputFullSelected, string outputFullPath, bool outputPackedSelected, string outputPackedPath, string buildReportPath);
- }
- }
|