public void SelectARMode(SetARModeAction.ARMode arMode) { if (arMode == SetARModeAction.ARMode.None) { return; } Dispatcher.Dispatch(SetWalkEnableAction.From(false)); var currentNavigationMode = m_NavigationModeSelector.GetValue() == SetNavigationModeAction.NavigationMode.Walk ? SetNavigationModeAction.NavigationMode.Orbit : m_NavigationModeSelector.GetValue(); if (currentNavigationMode != SetNavigationModeAction.NavigationMode.AR) { Dispatcher.Dispatch(UnloadSceneActions <Project> .From(UIStateManager.current.GetSceneDictionary()[currentNavigationMode])); Dispatcher.Dispatch(LoadSceneActions <Project> .From(UIStateManager.current.GetSceneDictionary()[SetNavigationModeAction.NavigationMode.AR])); } Dispatcher.Dispatch(OpenDialogAction.From(OpenDialogAction.DialogType.None)); Dispatcher.Dispatch(ClearStatusAction.From(true)); Dispatcher.Dispatch(ClearStatusAction.From(false)); Dispatcher.Dispatch(SetInstructionMode.From(false)); Dispatcher.Dispatch(CloseAllDialogsAction.From(null)); Dispatcher.Dispatch(SetNavigationModeAction.From(SetNavigationModeAction.NavigationMode.AR)); Dispatcher.Dispatch(SetARModeAction.From(arMode)); }
void OnDestroy() { Dispatcher.Dispatch(SetARModeAction.From(SetARModeAction.ARMode.None)); StopAllCoroutines(); if (m_MARSCamera != null) { m_MARSCamera.enabled = false; } if (UIStateManager.current != null && m_ARPlacementStateDataSelector.GetValue().placementRulesGameObject != null) { DestroyImmediate(m_ARPlacementStateDataSelector.GetValue().placementRulesGameObject); } UIStateManager.current.ResetSession(); UIStateManager.current.PauseSession(); // remove input system hooks m_InputActionAsset["Placement Rotate Action"].performed -= OnPlacementRotateAction; m_InputActionAsset["Placement Scale Action"].started -= OnPlacementScaleActionStarted; m_InputActionAsset["Placement Scale Action"].performed -= OnPlacementScaleAction; m_ARPlacementStateDataSelector = null; m_DisposeOnDestroy.ForEach(x => x.Dispose()); }
void ARCardClicked(SetARModeAction.ARMode arMode) { Dispatcher.Dispatch(SetARModeAction.From(arMode)); Dispatcher.Dispatch(SetDeltaDNAButtonAction.From($"ARMode_{arMode}")); SelectARMode(arMode); }