public void ActionObjectAimingMenuClick() { if (CheckActionObjectAiming()) { return; } if (!SceneManager.Instance.IsRobotAndEESelected()) { OpenRobotSelector(ActionObjectAimingMenuClick); return; } if (selectedObject is ActionObject actionObject) { if (!SelectorMenu.Instance.gameObject.activeSelf && !ActionObjectAimingMenuButton.GetComponent <Image>().enabled) //other menu/dialog opened { SetActiveSubmenu(CurrentSubmenuOpened); //close all other opened menus/dialogs and takes care of red background of buttons } if (ActionObjectAimingMenuButton.GetComponent <Image>().enabled) { ActionObjectAimingMenuButton.GetComponent <Image>().enabled = false; SelectorMenu.Instance.gameObject.SetActive(true); if (RobotSteppingMenu.Instance.IsVisible) { RobotSteppingMenu.Instance.Hide(); } ActionObjectAimingMenu.Instance.Hide(); } else { _ = ActionObjectAimingMenu.Instance.Show(actionObject, false); ActionObjectAimingMenuButton.GetComponent <Image>().enabled = true; SelectorMenu.Instance.gameObject.SetActive(false); } } }
protected override void Awake() { base.Awake(); Base.SceneManager.Instance.OnSceneSavedStatusChanged += OnSceneSavedStatusChanged; SceneManager.Instance.OnSceneStateEvent += OnSceneStateEvent; GameManager.Instance.OnGameStateChanged += OnGameStateChanged; GameManager.Instance.OnEditorStateChanged += OnEditorStateChanged; SelectorMenu.Instance.OnObjectSelectedChangedEvent += OnObjectSelectedChangedEvent; ActionObjectAimingMenuButton.SetDescription(AIMING_MENU_BTN_LABEL); AddActionObjectButton.SetDescription(ADD_ACTION_OBJECT_BTN_LABEL); }
public override void DeactivateAllSubmenus() { if (CheckActionObjectAiming()) { return; } base.DeactivateAllSubmenus(); AddActionObjectButton.GetComponent <Image>().enabled = false; AddNewCollisionObjectButton.GetComponent <Image>().enabled = false; ActionObjectAimingMenuButton.GetComponent <Image>().enabled = false; ActionObjectPickerMenu.Instance.Hide(); ActionObjectAimingMenu.Instance.Hide(); }
protected async override Task UpdateBtns(InteractiveObject obj) { try { if (CanvasGroup.alpha == 0) { return; } await base.UpdateBtns(obj); AddNewCollisionObjectButton.SetInteractivity(!SceneManager.Instance.SceneStarted, $"{ADD_NEW_COLLISION_OBJECT_BTN_LABEL}\n(only available when offline)"); if (SceneManager.Instance.SceneStarted) { AddActionObjectButton.SetInteractivity(false, $"{ADD_ACTION_OBJECT_BTN_LABEL}\n(only available when offline)"); } else if (ActionsManager.Instance.AbstractOnlyObjects) { AddActionObjectButton.SetInteractivity(false, $"{ADD_ACTION_OBJECT_BTN_LABEL}\n(no object type available)"); } else { AddActionObjectButton.SetInteractivity(true); } #if UNITY_ANDROID && AR_ON if (!CalibrationManager.Instance.Calibrated && !TrackingManager.Instance.IsDeviceTracking()) { ActionObjectAimingMenuButton.SetInteractivity(false, "AR is not calibrated"); AddActionObjectButton.SetInteractivity(false, "AR is not calibrated"); } else #endif if (requestingObject || obj == null) { SelectedObjectText.text = ""; ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(no object selected)"); CopyButton.SetInteractivity(false, $"{COPY_LABEL}\n(no object selected)"); } else if (obj.IsLocked && obj.LockOwner != LandingScreen.Instance.GetUsername()) { ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(the object is used by {obj.LockOwner})"); CopyButton.SetInteractivity(false, $"{COPY_LABEL}\n(the object is used by {obj.LockOwner})"); } else { if (obj is ActionObject actionObject) { if (!SceneManager.Instance.SceneStarted) { ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(only available when online)"); } else if (!actionObject.ActionObjectMetadata.HasPose) { ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(not available for objects without pose)"); CopyButton.SetInteractivity(false, $"{COPY_LABEL}\n(not available for objects without pose)"); } else if (actionObject.IsRobot()) { ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(not available for robots)"); CopyButton.SetInteractivity(true); } else { ActionObjectAimingMenuButton.SetInteractivity(true); CopyButton.SetInteractivity(true); } CopyButton.SetInteractivity(!SceneManager.Instance.SceneStarted, $"{COPY_LABEL}\n(only available when offline)"); } else { ActionObjectAimingMenuButton.SetInteractivity(false, $"{AIMING_MENU_BTN_LABEL}\n(selected object is not action object)"); CopyButton.SetInteractivity(false, $"{COPY_LABEL}\n(selected object is not action object)"); } } previousUpdateDone = true; } finally { previousUpdateDone = true; } }