Пример #1
0
        void Awake()
        {
            UIStateManager.stateChanged   += OnStateDataChanged;
            UIStateManager.arStateChanged += OnARStateDataChanged;

            m_MARSCamera = Camera.main.GetComponent <MARS.MARSCamera>();
#if URP_AVAILABLE
            m_CameraData = Camera.main.GetComponent <UniversalAdditionalCameraData>();
#endif

            m_InputActionAsset["Placement Rotate Action"].performed += OnPlacementRotateAction;
            m_InputActionAsset["Placement Scale Action"].started    += OnPlacementScaleActionStarted;
            m_InputActionAsset["Placement Scale Action"].performed  += OnPlacementScaleAction;

            m_ScaleValues = Enum.GetValues(typeof(ArchitectureScale));

            foreach (var obj in InstructionUIList)
            {
                var instructionUI = obj as IInstructionUI;
                instructionUI.Initialize(this);
            }

            m_InitialNearClippingPlane = m_MARSCamera.GetComponent <Camera>().nearClipPlane;
            m_InitialFarClippingPlane  = m_MARSCamera.GetComponent <Camera>().farClipPlane;
        }
        void Awake()
        {
            EnableMARSSession(true);
            foreach (var obj in InstructionUIList)
            {
                var instructionUI = obj as IARInstructionUI;
                instructionUI.Initialize(this);
            }

            m_DisposeOnDestroy.Add(m_ARScaleEnabledSelector  = UISelectorFactory.createSelector <bool>(ARToolStateContext.current, nameof(IARToolStatePropertiesDataProvider.scaleEnabled)));
            m_DisposeOnDestroy.Add(m_ARRotateEnabledSelector = UISelectorFactory.createSelector <bool>(ARToolStateContext.current, nameof(IARToolStatePropertiesDataProvider.rotateEnabled)));
            m_DisposeOnDestroy.Add(UISelectorFactory.createSelector <bool>(ARContext.current, nameof(IARModeDataProvider.arEnabled), OnAREnabledChanged));
            m_DisposeOnDestroy.Add(UISelectorFactory.createSelector <SetInstructionUIStateAction.InstructionUIState>(ARContext.current, nameof(IARModeDataProvider.instructionUIState), OnInstructionUIStateChanged));

            var arModeSelector = UISelectorFactory.createSelector <SetARModeAction.ARMode>(ARContext.current, nameof(IARModeDataProvider.arMode), OnARModeChanged);

            m_DisposeOnDestroy.Add(arModeSelector);
            m_DisposeOnDestroy.Add(m_ARPlacementStateDataSelector = UISelectorFactory.createSelector <ARPlacementStateData>(ARContext.current, nameof(IARPlacement <ARPlacementStateData> .placementStateData)));
            m_DisposeOnDestroy.Add(m_ModelScaleSelector           = UISelectorFactory.createSelector <SetModelScaleAction.ArchitectureScale>(ARPlacementContext.current, nameof(IARPlacementDataProvider.modelScale)));
            m_DisposeOnDestroy.Add(m_RootSelector           = UISelectorFactory.createSelector <Transform>(PipelineContext.current, nameof(IPipelineDataProvider.rootNode)));
            m_DisposeOnDestroy.Add(m_ToolBarEnabledSelector = UISelectorFactory.createSelector <bool>(UIStateContext.current, nameof(IToolBarDataProvider.toolbarsEnabled), null));
            m_DisposeOnDestroy.Add(UISelectorFactory.createSelector <bool>(UIStateContext.current, nameof(IUIStateDataProvider.operationCancelled), OnOperationCancelledChanged));
            m_DisposeOnDestroy.Add(UISelectorFactory.createSelector <OpenDialogAction.DialogType>(UIStateContext.current, nameof(IDialogDataProvider.activeDialog), OnActiveDialogChanged));

            m_MARSCamera = Camera.main.GetComponent <MARS.MARSCamera>();
#if URP_AVAILABLE
            m_CameraData = Camera.main.GetComponent <UniversalAdditionalCameraData>();
#endif

            m_InputActionAsset["Placement Rotate Action"].performed += OnPlacementRotateAction;
            m_InputActionAsset["Placement Scale Action"].started    += OnPlacementScaleActionStarted;
            m_InputActionAsset["Placement Scale Action"].performed  += OnPlacementScaleAction;

            m_ScaleValues = Enum.GetValues(typeof(SetModelScaleAction.ArchitectureScale));

            // Force ARMode because the awake can be called on the next frame than UISelector
            OnARModeChanged(arModeSelector.GetValue());
        }