Example #1
0
 private void UpdateLookedItem(ActionSpot actionItem)
 {
     if (_lastActionItem != actionItem)
     {
         progressBar.fillAmount = 0;
         if (_lastActionItem != null)
         {
             _lastActionItem.Leave();
         }
         if (actionItem != null)
         {
             actionItem.Look();
         }
         _lastActionItem            = actionItem;
         _lastActionItemIsActivated = false;
     }
 }
Example #2
0
    void RaycastWorldUI()
    {
        float                planeDistance = 90000;
        ActionSpot           actionItem    = null;
        List <RaycastResult> results       = new List <RaycastResult>();

        EventSystem.current.RaycastAll(getRaycastPointer(), results);
        Vector3   stickyPosition  = Vector3.one;
        Vector3   stickyNormal    = Vector3.one;
        Transform stickyTransform = null;

        if (results.Count > 0)
        {
            //stickyPosition = results[0].worldPosition;
            //stickyNormal = results[0].worldNormal;
            stickyTransform = results[0].gameObject.transform;
            stickyPosition  = stickyTransform.position;
            planeDistance   = Vector3.Distance(mainCamera.transform.position, stickyPosition);
        }

        results = results.Where((r) => { return(r.gameObject.tag == tagName); }).ToList();

        if (results.Count > 0)
        {
            planeDistance = Vector3.Distance(mainCamera.transform.position, stickyPosition);
            //transform.rotation = Quaternion.FromToRotation(Vector3.back, stickyNormal);

            actionItem = results[0].gameObject.GetComponent <ActionSpot>();
            if (actionItem == null)
            {
                Debug.LogWarningFormat("{0} does not contains ActionSpot Component", results[0]);
            }
            results.Clear();
        }
        else
        {
            transform.localRotation = _originalRotation;
        }

        transform.localPosition = new Vector3(0, 0, planeDistance);
        transform.localScale    = _originalScale * planeDistance;

        UpdateLookedItem(actionItem);
    }