Ejemplo n.º 1
0
    /*void OnDrawGizmos()	{
     *      if (Debug.isDebugBuild) {
     *              Transform camTransform = mainCamera.transform;
     *              Gizmos.color = _lastLookedItem == null? Color.blue : Color.green;
     *              Gizmos.DrawRay(camTransform.position, camTransform.forward * 100);
     *      }
     * }*/

    private void UpdateLookedItem(LookableItem lookedItem)
    {
        if (_lastLookedItem != lookedItem)
        {
            if (_lastLookedItem != null)
            {
                _lastLookedItem.Leave();
            }
            if (lookedItem != null)
            {
                lookedItem.Looked();
            }
            _lastLookedItem = lookedItem;
        }
    }
Ejemplo n.º 2
0
    void RaycastWorldUI()
    {
        LookableItem         lookedItem = null;
        List <RaycastResult> results    = new List <RaycastResult>();

        EventSystem.current.RaycastAll(getRaycastPointer(), results);

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

        if (results.Count > 0)
        {
            lookedItem = results[0].gameObject.GetComponent <LookableItem>();
            results.Clear();
        }

        UpdateLookedItem(lookedItem);
    }
Ejemplo n.º 3
0
    void Update()
    {
        RaycastHit   hit;
        Transform    camTransform = mainCamera.transform;
        Ray          ray          = new Ray(camTransform.position, camTransform.forward);
        LookableItem lookedItem   = null;

        if (Physics.Raycast(ray, out hit))
        {
            GameObject objectHit = hit.transform.gameObject;

            if (objectHit.tag == tagName)
            {
                lookedItem = objectHit.GetComponent <LookableItem>();
            }
        }

        UpdateLookedItem(lookedItem);
    }