void IModule.LoadModule() { CleanupVisuals(); const float rescanSleepTime = 0.5f; const float updateSleepTime = 0.03f; m_RescanTask = new EditorSlowTask(ScanEntitiesAndCreateVisuals, rescanSleepTime); m_UpdateTask = new EditorSlowTask(UpdateVisuals, updateSleepTime); m_SlowTaskModule.AddSlowTask(ScanEntitiesAndCreateVisuals, rescanSleepTime, true); m_SlowTaskModule.AddSlowTask(UpdateVisuals, updateSleepTime, true); m_Loaded = true; #if UNITY_EDITOR EditorApplication.delayCall += () => { if (m_Loaded && !EditorApplication.isPlayingOrWillChangePlaymode) { EditorApplication.update += EditorUpdateSlowTask; } }; EditorOnlyDelegates.IsGizmosCamera = IsGizmosCamera; Selection.selectionChanged += OnSelectionChanged; #endif }
void StartSimulatableChangeTask() { // We only re-evaluate queries if a certain amount of time has passed without any change happening. // This keeps us from rapidly re-evaluating queries as, for example, a slider is dragged. SimulationSyncedWithScene = false; m_SimulatableChangeFinalizedTask = new EditorSlowTask(OnSimulatableChangeFinalized, SimulationSettings.instance.TimeToFinalizeSceneModification); }
void IModule.UnloadModule() { m_SlowTaskModule.ClearTasks(); m_SimulationPollTask = null; QueryObjectMapping.Map.Clear(); EditorApplication.update -= Update; SimulationSceneModule.SimulationSceneOpened -= OnSimulationSceneOpened; SimulationSceneModule.SimulationSceneClosing -= OnSimulationSceneClosing; EditorOnlyDelegates.IsSimulatingTemporal = null; RestoreOriginalActiveIsland(); m_SimulationRestartNeeded = false; NextSimModeSelection = SimulationModeSelection.NoModePreference; KeepDataBetweenSimulations = false; m_SimulationPollTask = null; m_OriginalActiveIsland = null; CleanupProviders(); simulating = false; simulatingTemporal = false; functionalityIsland = null; providersRoot = null; m_SimulationContext.Clear(); }
public void UnloadModule() { SceneView.duringSceneGui -= OnSceneGUI; EditorApplication.update -= Update; m_FindAvatarEditor = null; }
public void LoadModule() { SceneView.duringSceneGui += OnSceneGUI; EditorApplication.update += Update; m_FindAvatarEditor = new EditorSlowTask(() => { CacheAvatarEditor(); CacheEditorIsInAvatarMuscleEditorMode(); }, m_PollingInterval); }
void OnManualTimeChangeFinalized() { m_ManualTimeChangeTask = null; if (m_CurrentSessionDirector == null || !AutoSyncWithTimeChanges) { return; } // When time is manually changed we must rerun the simulation to get it in sync with the current time m_QuerySimulationModule.RequestSimulationModeSelection(SimulationModeSelection.TemporalMode); m_QuerySimulationModule.RestartSimulationIfNeeded(); }
void IModule.LoadModule() { functionalityIsland = m_SimulationIsland; EditorApplication.update += Update; SimulationSceneModule.SimulationSceneOpened += OnSimulationSceneOpened; SimulationSceneModule.SimulationSceneClosing += OnSimulationSceneClosing; EditorOnlyDelegates.IsSimulatingTemporal = () => simulatingTemporal; CacheOriginalActiveIsland(); // do not poll for simulation if we are running tests. It has caused // hard-to-debug test failures from simulation running at unexpected times. m_SimulationPollTask = new EditorSlowTask(CheckIfSimulationRestartNeeded, m_SimulationPollTime); // Start simulation if any objects are using the sim scene RestartSimulationIfNeeded(); }
void IModule.UnloadModule() { CleanupVisuals(); m_SlowTaskModule.RemoveSlowTask(UpdateVisuals); m_SlowTaskModule.RemoveSlowTask(ScanEntitiesAndCreateVisuals); m_FaceVisuals.Clear(); #if UNITY_EDITOR EditorApplication.update -= EditorUpdateSlowTask; EditorOnlyDelegates.IsGizmosCamera = null; Selection.selectionChanged -= OnSelectionChanged; #endif m_PrefabStageScene = default(Scene); simEntitiesRoot = null; m_UpdateTask = null; m_RescanTask = null; m_Loaded = false; }
void IModule.UnloadModule() { EditorApplication.update -= EditorUpdate; QuerySimulationModule.BeforeTemporalSimulationRestart -= OnBeforeTemporalSimulationRestart; QuerySimulationModule.addCustomProviders -= OnBeforeSetupDefaultProviders; QuerySimulationModule.onTemporalSimulationStop -= OnTemporalSimulationStop; QuerySimulationModule.BeforeCleanupProviders -= OnBeforeCleanupProviders; QuerySimulationModule.OnOneShotSimulationStart -= OnOneShotSimulationStart; m_MarsSceneModule.BeforeSetupDefaultProviders -= OnBeforeSetupDefaultProviders; m_SimulationRecordingManager.RecordingOptionChanged -= OnRecordingOptionChanged; EditorOnlyDelegates.GetCurrentRecordingDirector = () => null; m_CurrentRecordingInfo = null; m_ManualTimeChangeTask = null; TimelineSyncState = SimulationTimeSyncState.NoTimeline; TimelineSyncProgress = 0f; SyncEndTime = 0d; m_PreviousMasterDirector = null; m_ShouldShowTimelineOnSimStart = false; m_IgnoreTimeChangeFromWindow = false; m_IgnoreTimeChangeFrame = 0; }
void OnTimeManuallyChanged(double time) { if (IsRecordingPlaying) { PausePlayback(); } // Steppable data providers update their data whenever time changes, even manually. This makes it possible // for some tracks to provide feedback in Simulation as the user scrubs through the Timeline. m_CurrentSessionDirector.Evaluate(); foreach (var provider in m_SteppableDataProviders) { provider.StepRecordedData(); } if (!m_CurrentRecordingInfo.ControlsMarsLifecycle) { return; } TimelineSyncState = SimulationTimeSyncState.OutOfSync; SyncEndTime = time; m_ManualTimeChangeTask = new EditorSlowTask(OnManualTimeChangeFinalized, m_TimeToFinalizeTimelineChange); }
void OnOffsetChangeFinalized() { m_OffsetChangeFinalizedTask = null; IsCameraOffsetDirty = true; DirtySimulatableScene(); }
void StartOffsetChangeTask() { SimulationSyncedWithScene = false; m_OffsetChangeFinalizedTask = new EditorSlowTask(OnOffsetChangeFinalized, SimulationSettings.instance.TimeToFinalizeSceneModification); }
void OnSimulatableChangeFinalized() { m_SimulatableChangeFinalizedTask = null; DirtySimulatableScene(); }