using System; using UnityEditor.Build.Pipeline.Interfaces; namespace UnityEditor.Build.Pipeline { /// /// Basic implementation of IDependencyCallback, IPackingCallback, IWritingCallback, and IScriptsCallback. /// Uses Func implementation for callbacks. , /// , and /// public class BuildCallbacks : IDependencyCallback, IPackingCallback, IWritingCallback, IScriptsCallback { /// /// Func delegate for the callback after scripts have been compiled. /// public Func PostScriptsCallbacks { get; set; } /// /// Func delegate for the callback after dependency calculation has occurred. /// public Func PostDependencyCallback { get; set; } /// /// Func delegate for the callback after packing has occurred. /// public Func PostPackingCallback { get; set; } /// /// Func delegate for the callback after writing content has occurred. /// public Func PostWritingCallback { get; set; } /// public ReturnCode PostScripts(IBuildParameters parameters, IBuildResults results) { if (PostScriptsCallbacks != null) return PostScriptsCallbacks(parameters, results); return ReturnCode.Success; } /// public ReturnCode PostDependency(IBuildParameters buildParameters, IDependencyData dependencyData) { if (PostDependencyCallback != null) return PostDependencyCallback(buildParameters, dependencyData); return ReturnCode.Success; } /// public ReturnCode PostPacking(IBuildParameters buildParameters, IDependencyData dependencyData, IWriteData writeData) { if (PostPackingCallback != null) return PostPackingCallback(buildParameters, dependencyData, writeData); return ReturnCode.Success; } /// public ReturnCode PostWriting(IBuildParameters parameters, IDependencyData dependencyData, IWriteData writeData, IBuildResults results) { if (PostWritingCallback != null) return PostWritingCallback(parameters, dependencyData, writeData, results); return ReturnCode.Success; } } }