Version: Unity 6.7 Alpha (6000.7)
LanguageEnglish
  • C#

BuildPlayerProcessor.PrepareForBuild

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public void PrepareForBuild(BuildPlayerContext buildPlayerContext);

Parameters

Parameter Description
buildPlayerContext The context for the scheduled Player build.

Description

Implement this function to receive a callback before a Player build starts.

You can use this function to customize the build before Unity starts building the Player. For example, the following code example demonstrates how to include streaming assets in the Player build without placing them in your project's StreamingAssets folder.

This callback is a good place to confirm that the project is configured correctly before the build starts, and to fail the build early if a required setting is missing. Give validation callbacks a low IOrderedCallback.callbackOrder value so they run before other PrepareForBuild callbacks.

To fail the build from this callback, throw a BuildFailedException. It reports a clear message without a call stack.

Unlike IPreprocessBuildWithContext, you can trigger a content-only build from this callback, for example by calling BuildPipeline.BuildContentDirectory. The Addressables package uses this callback to build content during a Player build.

For more information about build callbacks, refer to Use build callbacks.

Additional resources: BuildPlayerContext.AddAdditionalPathToStreamingAssets, BuildPipeline.BuildContentDirectory

class PrepareBuild : UnityEditor.Build.BuildPlayerProcessor
{
    public override void PrepareForBuild(UnityEditor.Build.BuildPlayerContext buildPlayerContext)
    {
        // Add data files to the Player build's StreamingAssets folder
        // Works for files located both inside and outside the Unity project

buildPlayerContext.AddAdditionalPathToStreamingAssets("Assets/dataFromUnityProject.txt", "dataFromUnityProject.txt");

buildPlayerContext.AddAdditionalPathToStreamingAssets("C:/Temp/dataOutsideUnityProject.txt", "dataOutsideUnityProject.txt"); } }