Ejemplo n.º 1
0
 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);
         }
     }
 }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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();
    }
Ejemplo n.º 4
0
    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;
        }
    }