StrictMode
Fails the build if any errors are reported during it.
Read time 2 minutesLast updated 12 days ago
Definition
- Type: Field
- Namespace: UnityEditor
- Assembly: UnityEditor.CoreModule
StrictMode = 512
Remarks
Without this flag, non-fatal errors, such as a failure to compile a shader for a particular platform, won't cause the build to fail, but might result in incorrect behavior at runtime.
Always set this flag, unless errors are logged from packages or other third-party code that you can't fix, and you need the build to proceed despite them.
When this flag is set, errors logged from these build callbacks also fail the build: IPreprocessBuildWithContext.OnPreprocessBuild, IPostprocessBuildWithContext.OnPostprocessBuild, IProcessSceneWithReport.OnProcessScene, IPreprocessShaders.OnProcessShader, and IPreprocessComputeShaders.OnProcessComputeShader.
This flag is the AssetBundle equivalent of BuildOptions.StrictMode.
Additional Resources: BuildOptions.StrictMode, BuildContentOptions.FailBuildWhenErrorsLogged
Examples
//Create a folder (right click in the Assets folder and go to <b>Create</b>><b>Folder</b>), and name it "Editor" if it doesn't already exist//Place this script in the Editor folder//This script creates a new Menu named "Build Asset" and new options for different Build Asset Bundle Options. Click these menu items to build an AssetBundle.using UnityEngine;using UnityEditor;namespace BuildDocExamples{ public class BuildAssetBundleOptions_Examples { //Creates a new menu (Build Asset Bundles) and item (Normal) in the Editor [MenuItem("BuildDocExamples/Build Asset Bundles/Normal")] static void BuildABsNone() { //Build AssetBundles with no special options //They will be written in the custom folder ("MyAssetBuilds") which needs to exist prior to this call. BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.None, BuildTarget.StandaloneOSX); } //Creates a new item (Append Hash) in the new Build Asset Bundles menu [MenuItem("BuildDocExamples/Build Asset Bundles/Append Hash")] static void BuildABsAppend() { //Build the AssetBundles in this mode BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.AppendHashToAssetBundleName, BuildTarget.StandaloneOSX); } //Creates a new item (Strict Mode) in the new Build Asset Bundles menu [MenuItem("BuildDocExamples/Build Asset Bundles/Strict Mode")] static void BuildABsStrict() { //Build the AssetBundles in strict mode (build fails if any errors are detected) BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.StrictMode, BuildTarget.StandaloneOSX); } //Creates a new item (Ignore Type Tree Changes) in the new Build Asset Bundles menu [MenuItem("BuildDocExamples/Build Asset Bundles/Ignore Type Tree Changes")] static void BuildABsIgnoreTypeTreeChanges() { //Build the AssetBundles in ignore type tree changes build mode BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.IgnoreTypeTreeChanges, BuildTarget.StandaloneOSX); } //Creates a new item (Dry Run Build) in the new Build Asset Bundles menu [MenuItem("BuildDocExamples/Build Asset Bundles/Dry Run Build")] static void BuildABsDry() { //Build the AssetBundles in dry run build mode BuildPipeline.BuildAssetBundles("Assets/MyAssetBuilds", BuildAssetBundleOptions.DryRunBuild, BuildTarget.StandaloneOSX); } }}