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;
}
}
}