Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Finding out if Addressables are being build

Discussion in 'Addressables' started by LarsGameloft, Feb 19, 2020.

  1. LarsGameloft

    LarsGameloft

    Joined:
    Jun 4, 2019
    Posts:
    28
    Is there a flag in code that lets you know that addressable are being build?

    The answer I got was no.
    But its possible to override BuildScriptPackedMode.cs and setup something if needed.
     
    Last edited: Feb 27, 2020
    littledwarf likes this.
  2. littledwarf

    littledwarf

    Joined:
    Dec 26, 2016
    Posts:
    11
    Hi @LarsGameloft, hope you are doing great!

    I was wondering the same...but I've been doing some checks about addressables on a project I'm working on and it seems that flag: UnityEditor.BuildPipeline.isBuildingPlayer always return true when I'm building contents through
    Code (CSharp):
    1. AddressableAssetSettings.BuildPlayerContent(out var result);
    @ksahsi could you confirm is that is always true? If not, could you inform what API to call or ask them to add this to Unity's API so we don't need to create workarounds?

    Thank you in advance
     
  3. littledwarf

    littledwarf

    Joined:
    Dec 26, 2016
    Posts:
    11
    @LarsGameloft @ksahsi, sorry for the confusion.

    Although testing against UnityEditor.BuildPipeline.isBuildingPlayer was working for some cases, I just found out cases where it still fails. So I'm on the same issue as @LarsGameloft mentioned.

    I did a little bit more investigations and I'm almost sure I found out the basic reason:
    Seems that there are two steps...
    First where UnityEditor.BuildPipeline.isBuildingPlayer is True (seems when it's running it's Dependencies check)
    Second one where UnityEditor.BuildPipeline.isBuildingPlayer is False

    First step stack:
    UnityEngine.StackTraceUtility:ExtractStackTrace ()
    UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    UnityEngine.Logger:Log (UnityEngine.LogType,object)
    UnityEngine.Debug:Log (object)
    Syncer:OnValidate () (at Assets/System/Scripts/Scene Management/Syncer.cs:458)
    UnityEditor.Build.Content.ContentBuildInterface:CalculatePlayerDependenciesForSceneInternal (string,UnityEditor.Build.Content.BuildSettings,UnityEditor.Build.Content.BuildUsageTagSet,UnityEditor.Build.Content.BuildUsageCache,UnityEditor.Build.Content.DependencyType)
    UnityEditor.Build.Content.ContentBuildInterface:CalculatePlayerDependenciesForScene (string,UnityEditor.Build.Content.BuildSettings,UnityEditor.Build.Content.BuildUsageTagSet,UnityEditor.Build.Content.BuildUsageCache)
    UnityEditor.Build.Pipeline.Tasks.CalculateSceneDependencyData:Run () (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Tasks/CalculateSceneDependencyData.cs:137)
    UnityEditor.Build.Pipeline.BuildTasksRunner:Run (System.Collections.Generic.IList`1<UnityEditor.Build.Pipeline.Interfaces.IBuildTask>,UnityEditor.Build.Pipeline.Interfaces.IBuildContext) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Shared/BuildTasksRunner.cs:56)
    UnityEditor.Build.Pipeline.ContentPipeline:BuildAssetBundles (UnityEditor.Build.Pipeline.Interfaces.IBundleBuildParameters,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildContent,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildResults&,System.Collections.Generic.IList`1<UnityEditor.Build.Pipeline.Interfaces.IBuildTask>,UnityEditor.Build.Pipeline.Interfaces.IContextObject[]) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/ContentPipeline.cs:145)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:DoBuild<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput,UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptPackedMode.cs:258)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:BuildDataImplementation<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptPackedMode.cs:79)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptBase:BuildData<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptBase.cs:90)
    UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContentImpl (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput,bool) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Settings/AddressableAssetSettings.cs:2699)
    UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContent (UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult&,UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Settings/AddressableAssetSettings.cs:2667)
    UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildAddressables (UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor/BuildMenuContext) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:445)
    UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildAddressables (object) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:426)
    UnityEditor.GenericMenu:CatchMenu (object,string[],int)

    Second step stack:
    UnityEngine.StackTraceUtility:ExtractStackTrace ()
    UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    UnityEngine.Logger:Log (UnityEngine.LogType,object)
    UnityEngine.Debug:Log (object)
    Syncer:OnValidate () (at Assets/System/Scripts/Scene Management/Syncer.cs:458)
    UnityEditor.Build.Content.ContentBuildInterface:WriteSceneSerializedFile_Internal (string,string,UnityEditor.Build.Content.WriteCommand,UnityEditor.Build.Content.BuildSettings,UnityEditor.Build.Content.BuildUsageTagGlobal,UnityEditor.Build.Content.BuildUsageTagSet,UnityEditor.Build.Content.BuildReferenceMap,UnityEditor.Build.Content.PreloadInfo,UnityEditor.Build.Content.SceneBundleInfo)
    UnityEditor.Build.Content.ContentBuildInterface:WriteSceneSerializedFile (string,UnityEditor.Build.Content.WriteSceneParameters)
    UnityEditor.Build.Pipeline.WriteTypes.SceneBundleWriteOperation:Write (string,UnityEditor.Build.Content.BuildSettings,UnityEditor.Build.Content.BuildUsageTagGlobal) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/WriteTypes/SceneBundleWriteOperation.cs:56)
    UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles:UnityEditor.Build.Pipeline.Utilities.TaskCachingUtility.IRunCachedCallbacks<UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles.Item>.ProcessUncached (UnityEditor.Build.Pipeline.Utilities.TaskCachingUtility/WorkItem`1<UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles/Item>) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Tasks/WriteSerializedFiles.cs:172)
    UnityEditor.Build.Pipeline.Utilities.TaskCachingUtility:RunCachedOperation<UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles/Item> (UnityEditor.Build.Pipeline.Interfaces.IBuildCache,UnityEditor.Build.Pipeline.Interfaces.IBuildLogger,UnityEditor.Build.Pipeline.Interfaces.IProgressTracker,System.Collections.Generic.List`1<UnityEditor.Build.Pipeline.Utilities.TaskCachingUtility/WorkItem`1<UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles/Item>>,UnityEditor.Build.Pipeline.Utilities.TaskCachingUtility/IRunCachedCallbacks`1<UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles/Item>) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Utilities/TaskCachingUtility.cs:100)
    UnityEditor.Build.Pipeline.Tasks.WriteSerializedFiles:Run () (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Tasks/WriteSerializedFiles.cs:120)
    UnityEditor.Build.Pipeline.BuildTasksRunner:Run (System.Collections.Generic.IList`1<UnityEditor.Build.Pipeline.Interfaces.IBuildTask>,UnityEditor.Build.Pipeline.Interfaces.IBuildContext) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/Shared/BuildTasksRunner.cs:56)
    UnityEditor.Build.Pipeline.ContentPipeline:BuildAssetBundles (UnityEditor.Build.Pipeline.Interfaces.IBundleBuildParameters,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildContent,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildResults&,System.Collections.Generic.IList`1<UnityEditor.Build.Pipeline.Interfaces.IBuildTask>,UnityEditor.Build.Pipeline.Interfaces.IContextObject[]) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.6/Editor/ContentPipeline.cs:145)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:DoBuild<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput,UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptPackedMode.cs:258)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:BuildDataImplementation<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptPackedMode.cs:79)
    UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptBase:BuildData<UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult> (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Build/DataBuilders/BuildScriptBase.cs:90)
    UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContentImpl (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput,bool) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Settings/AddressableAssetSettings.cs:2699)
    UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContent (UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult&,UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/Settings/AddressableAssetSettings.cs:2667)
    UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildAddressables (UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor/BuildMenuContext) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:445)
    UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildAddressables (object) (at Library/PackageCache/com.unity.addressables@1.20.0/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:426)
    UnityEditor.GenericMenu:CatchMenu (object,string[],int)

    @ksahsi could you help on this matter?

    Thank you again