示例#1
0
    void Update()
    {
        #region PointerInput
        // Inupt is disbaled if camera is lerping
        if (!isLerpingToNewPosition)
        {
            // Finishing click
            if (Input.GetMouseButtonUp(0))
            {
                // If we started and finished a click on an item, then interact with it
                if (hasClickedDownOnItem && !isDragging)
                {
                    Ray        ray = sceneCamera.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit))
                    {
                        if (hit.transform.gameObject.tag == "Animatable")
                        {
                            hit.transform.gameObject.GetComponent <Animator> ().SetTrigger("Clicked");
                        }
                        FamiliarizeObject clickedObject = hit.transform.GetComponent <FamiliarizeObject>();
                        if (clickedObject != null)
                        {
                            SelectFamiliarizeObject(clickedObject);
                        }
                    }
                }
                else if (!isDragging && !ApplicationManager.s_instance.userIsInteractingWithUI)                      // If we clicked away from any objects in the 3D Scene View, clear selection
                {
                    ClearSelectedFamiliarizeObject(true);
                }

                hasClickedDownOnItem = false;
                isDragging           = false;
            }
            // Pointer clicking is disabled if user is hovering over GUI
            if (ApplicationManager.s_instance.userIsInteractingWithUI)
            {
                return;
            }
            // Starting a click
            if (Input.GetMouseButtonDown(0))
            {
                Ray        ray = sceneCamera.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit))
                {
                    if (hit.transform.gameObject.tag == "Animatable" || hit.transform.gameObject.tag == "Selectable")
                    {
                        hasClickedDownOnItem = true;
                    }
                }
            }
        }
        #endregion

        CheckCompletion();
    }
示例#2
0
    private void SelectFamiliarizeObject(FamiliarizeObject newSelection)
    {
        ClearSelectedFamiliarizeObject(false);

        // Highlight Button in List View
        ToggleListViewButtonHighLight(newSelection.dictionaryKey, true);
        familiarizeDictionary[newSelection.dictionaryKey].button.checkBox.isOn = true;

        // Update Description View text
        UIManager.s_instance.UpdateDescriptionViewText(familiarizeDictionary[newSelection.dictionaryKey].uiText.descriptionViewText);

        // Selecting of new object and starting camera transition
        selectedObject        = newSelection;
        currentCameraPivot    = selectedObject.cameraPivot;
        currentCameraStartPos = selectedObject.cameraStartPosition;
        selectedObject.Select();
        StartCameraTransition();
    }
示例#3
0
    private void ClearSelectedFamiliarizeObject(bool slerpToDefaultPos)
    {
        if (selectedObject == null)
        {
            return;
        }

        ToggleListViewButtonHighLight(selectedObject.dictionaryKey, false);
        selectedObject.Deselect();
        selectedObject        = null;
        currentCameraPivot    = defaultCameraPivot;
        currentCameraStartPos = defaultCameraStartTransform;

        if (slerpToDefaultPos)
        {
            UIManager.s_instance.UpdateDescriptionViewText(defaultDescViewText);
            StartCameraTransition();
        }
    }