# BuildContentDirectory(BuildContentDirectoryParameters)

> Builds a content directory (serialized assets and scenes plus a manifest) at a defined output path.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.6/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static BuildReport BuildContentDirectory(BuildContentDirectoryParameters buildParameters)
```

### Parameters

**** (\[BuildContentDirectoryParameters]\(/engine/6000.6/script-reference/unityeditor/buildcontentdirectoryparameters)): The build settings to use for the build, such as paths, roots, options, and compression.

### Returns

| Type                                                                                      | Description                                                                                                                                       |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BuildReport](/engine/6000.6/script-reference/unityeditor/build/reporting/buildreport.md) | The [BuildReport](/engine/6000.6/script-reference/unityeditor/build/reporting/buildreport.md) that contains the results and details of the build. |

### Remarks

Use `buildParameters` to configure the build, including the root assets to include, the output path, and optional compression and build options. Each entry in [\_rootAssetPaths](/engine/6000.6/script-reference/unityeditor/buildcontentdirectoryparameters/rootassetpaths.md) must be a [ScriptableObject](/engine/6000.6/script-reference/unityengine/scriptableobject.md). The build includes those root assets and everything they reference, such as assets referenced through [LoadableObjectId](/engine/6000.6/script-reference/unity/loading/loadableobjectid.md), [Loadable\<T>](/engine/6000.6/script-reference/unity/loading/loadable1.md), and [LoadableSceneId](/engine/6000.6/script-reference/unity/loading/loadablesceneid.md).

The method creates [\_outputPath](/engine/6000.6/script-reference/unityeditor/buildcontentdirectoryparameters/outputpath.md) if it doesn't exist, normalizes path separators, and defaults [\_name](/engine/6000.6/script-reference/unityeditor/buildcontentdirectoryparameters/name.md) to the output folder name.

The build uses [\_activeBuildTarget](/engine/6000.6/script-reference/unityeditor/editoruserbuildsettings/activebuildtarget.md) and the active subtarget configured for that target in the build settings. Select the intended platform in the **Build Profile** window or through [command line arguments](/engine/6000.6/manual/unity-editor/command-line-arguments.md) so that the active target is set to the desired setting prior to calling this method.

To load the built content, register the output directory with [ContentLoadManager.RegisterContentDirectory](/engine/6000.6/script-reference/unity/loading/contentloadmanager/registercontentdirectory.md).

Additional Resources: [BuildContentDirectoryParameters](/engine/6000.6/script-reference/unityeditor/buildcontentdirectoryparameters.md), [ContentLoadManager](/engine/6000.6/script-reference/unity/loading/contentloadmanager.md)

### Examples

```csharp
using UnityEditor;
using UnityEngine;

namespace BuildDocExamples
{
    public class BuildPipeline_BuildContentDirectoryExample
    {
        [MenuItem("BuildDocExamples/Build/Build Content Directory")]
        public static void BuildContentDirectoryExample()
        {
            var parameters = new BuildContentDirectoryParameters
            {
                outputPath = "Builds/MyContentDirectory",
                rootAssetPaths = new[] { "Assets/MyRootAsset.asset" },
                options = BuildContentOptions.None
            };

            BuildPipeline.BuildContentDirectory(parameters);
        }
    }
}
```
