Exemplo n.º 1
0
        /// <summary>
        /// Builds player content using the player content version from a specified cache file.
        /// </summary>
        /// <param name="settings">The settings object to use for the build.</param>
        /// <param name="contentStateDataPath">The path of the cache data to use.</param>
        /// <returns>The build operation.</returns>
        public static AddressablesPlayerBuildResult BuildContentUpdate(AddressableAssetSettings settings, string contentStateDataPath)
        {
            var cacheData = LoadContentState(contentStateDataPath);

            if (!IsCacheDataValid(settings, cacheData))
            {
                return(null);
            }

            s_StreamingAssetsExists = Directory.Exists("Assets/StreamingAssets");
            var context = new AddressablesDataBuilderInput(settings, cacheData.playerVersion);

            context.PreviousContentState = cacheData;

            Cleanup(!s_StreamingAssetsExists, false);

            SceneManagerState.Record();
            var result = settings.ActivePlayerDataBuilder.BuildData <AddressablesPlayerBuildResult>(context);

            if (!string.IsNullOrEmpty(result.Error))
            {
                Debug.LogError(result.Error);
            }
            SceneManagerState.Restore();
            return(result);
        }
Exemplo n.º 2
0
        static SceneManagerState Create(SceneSetup[] scenes)
        {
            var scenesList = new List <SceneState>();
            var state      = new SceneManagerState();

            foreach (var s in scenes)
            {
                scenesList.Add(new SceneState(s));
            }
            state.openSceneState = scenesList.ToArray();
            var edbss = new List <EbsSceneState>();

            foreach (var s in BuiltinSceneCache.scenes)
            {
                edbss.Add(new EbsSceneState(s));
            }
            state.editorBuildSettingsSceneState = edbss.ToArray();
            return(state);
        }