public void Start() { m_FrameCount = 14; TestPrefab = QueryTestObjectSettings.instance.SimplePlaneConditionProxy; m_QueryBackend = ModuleLoaderCore.instance.GetModule <MARSQueryBackend>(); m_SchedulerModule = ModuleLoaderCore.instance.GetModule <EvaluationSchedulerModule>(); // block automatic solving on interval m_PreviousSchedulerMode = m_SchedulerModule.ActiveMode; m_SchedulerModule.SetMode(MarsSceneEvaluationMode.WaitForRequest); }
internal void SetMode(MarsSceneEvaluationMode mode) { if (mode == MarsSceneEvaluationMode.EvaluateOnInterval && ActiveMode == MarsSceneEvaluationMode.WaitForRequest) { // if we're evaluating when we get a request to change to interval mode, // we need to let the current evaluation finish and queue another one. if (CurrentlyEvaluating) { EvaluationQueued = true; } // otherwise we can immediately start a new evaluation else { OnEvaluationStart(); } } ActiveMode = mode; }
/// <summary> /// Set the scheduling mode for evaluating the MARS scene. /// Changing the mode to EvaluateOnInterval will queue an evaluation. /// </summary> /// <param name="mode">The mode to set</param> public static void SetEvaluationMode(this IUsesMarsSceneEvaluation caller, MarsSceneEvaluationMode mode) { IUsesMarsSceneEvaluationMethods.SetEvaluationMode(mode); }