예제 #1
0
        void DoSetup()
        {
            mCurrentBuildConfiguration = new BuildConfiguration();
            mCurrentBuildConfiguration.Initialize();

            if (!CheckOutputPath(CurrentProcess))
            {
                return;
            }

            if (!EditorUserBuildSettings.SwitchActiveBuildTarget(CurrentProcess.mPlatform))
            {
                throw new Exception("Could not switch to build target: " + CurrentProcess.mPlatform);
            }

            var scenes = new EditorBuildSettingsScene[CurrentProcess.mScenes.Count];

            for (int i = 0; i < scenes.Length; i++)
            {
                EditorBuildSettingsScene ebss = new EditorBuildSettingsScene(CurrentProcess.mScenes[i], true);
                scenes[i] = ebss;
            }
            EditorBuildSettings.scenes = scenes;


            mPreStepWalker.Init(CurrentProcess.mPreBuildSteps, mCurrentBuildConfiguration);

            mPostStepWalker.Init(CurrentProcess.mPostBuildSteps, mCurrentBuildConfiguration);

            mCurrentState = UBSState.preSteps;

            Save();
        }
예제 #2
0
 public void Cancel()
 {
     mCurrentState = UBSState.aborted;
     mPreStepWalker.Clear();
     mPostStepWalker.Clear();
     Save();
 }
예제 #3
0
 void NextBuild()
 {
     if (mCurrentBuildProcessIndex >= mSelectedProcesses.Count)
     {
         mCurrentState = UBSState.done;
         Save();
     }
     else
     {
         mCurrentState = UBSState.setup;
         Save();
     }
 }
예제 #4
0
 void OnBuildDone()
 {
     if (mBuildAndRun)
     {
         mCurrentState = UBSState.done;
         Save();
     }
     else
     {
         mCurrentState = UBSState.postSteps;
         Save();
     }
 }
예제 #5
0
        void DoPreSteps()
        {
            mPreStepWalker.MoveNext();

            if (mCurrentState == UBSState.aborted)
            {
                return;
            }

            if (mPreStepWalker.IsDone())
            {
                mCurrentState = UBSState.building;
            }
            Save();
        }
예제 #6
0
        void DoPostSteps()
        {
            mPostStepWalker.MoveNext();

            if (mCurrentState == UBSState.aborted)
            {
                return;
            }

            if (mPostStepWalker.IsDone())
            {
                mCurrentState = UBSState.invalid;
                mCurrentBuildProcessIndex++;
            }
            Save();
        }
예제 #7
0
 void OnBuildDone()
 {
     mCurrentState = UBSState.postSteps;
     Save();
 }