/// <summary>
        /// When we build using BuildPlayerStep with BuildOptions.AutoRunPlayer we run the player before CopyAdditionallyProvidedFilesStep is executed
        /// Sometimes you'll get lucky, since while the player is launching, CopyAdditionallyProvidedFilesStep will be executed in time
        /// And subscenes will be found...But in other cases, the player will launch without subscenes
        /// By using OnPostprocessBuild, we ensure all our steps are executed before running the player.
        /// The code is not pretty, but it's also temporary until we implement missing pipelines with their respective Run functions
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private BuildResult OnBuildSplit(BuildContext context)
        {
            var  normalSteps                = new List <Type>();
            var  postProcessSteps           = new List <Type>();
            bool buildPlayerStepEncountered = false;

            foreach (var b in BuildSteps)
            {
                if (buildPlayerStepEncountered)
                {
                    postProcessSteps.Add(b.GetType());
                }
                else
                {
                    normalSteps.Add(b.GetType());
                }

                if (b.GetType() == typeof(BuildPlayerStep))
                {
                    buildPlayerStepEncountered = true;
                }
            }

            var normalStepsCollection = new BuildStepCollection(normalSteps.ToArray());

            s_CachedPostProcessCollection = new BuildStepCollection(postProcessSteps.ToArray());
            s_CachedContext = context;

            var result = normalStepsCollection.Run(context);

            s_CachedPostProcessCollection = null;
            s_CachedContext = null;

            return(result);
        }
        public void Constructor()
        {
            var steps = new BuildStepCollection(typeof(TestBuildStepA), typeof(TestBuildStepB));

            Assert.That(steps.Select(step => step.GetType()), Is.EqualTo(new[] { typeof(TestBuildStepA), typeof(TestBuildStepB) }));
        }