# OnPreprocessBuild(BuildCallbackContext)

> Implement this method to receive a callback before the build is started.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.Build](/engine/6000.3/script-reference/unityeditor/build.md)
* **Assembly:** UnityEditor

```csharp
void OnPreprocessBuild(BuildCallbackContext ctx)
```

### Parameters

**** (\[BuildCallbackContext]\(/engine/6000.3/script-reference/unityeditor/build/buildcallbackcontext)): A context containing information about the build, such as its build report.

### Remarks

This callback is invoked during Player builds and AssetBundle builds.

Additional Resources: [IPostprocessBuildWithContext](/engine/6000.3/script-reference/unityeditor/build/ipostprocessbuildwithcontext.md), [BuildPlayerProcessor](/engine/6000.3/script-reference/unityeditor/build/buildplayerprocessor.md), [BuildPipeline.BuildPlayer](/engine/6000.3/script-reference/unityeditor/buildpipeline/buildplayer.md), [BuildPipeline.BuildAssetBundles](/engine/6000.3/script-reference/unityeditor/buildpipeline/buildassetbundles.md).

### Examples

```csharp
using UnityEditor;
using UnityEditor.Build;
using UnityEngine;
using UnityEditor.Build.Reporting;

class MyCustomBuildProcessor : IPreprocessBuildWithContext
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildCallbackContext ctx)
    {
        if (ctx.IsContentOnlyBuild)
            Debug.Log("AssetBundle build: MyCustomBuildProcessor.OnPreprocessBuild for target " + ctx.Report.summary.platform + " at path " + ctx.Report.summary.outputPath);
        else if (ctx.IsPlayerBuild)
            Debug.Log("Player build: MyCustomBuildProcessor.OnPreprocessBuild for target " + ctx.Report.summary.platform + " at path " + ctx.Report.summary.outputPath);
    }
}
```
