public virtual void OnTriggerDown()
 {
     m_isInteracting = true;
     if (m_parentTrigger != null)
     {
         m_parentTrigger.OnTriggerDown();
     }
     m_onInteracted.Invoke();
 }
示例#2
0
    private void TraceForAnim()
    {
        Ray          ray = m_cam.ScreenPointToRay(Input.mousePosition);
        RaycastHit2D hit2D;
        RaycastHit   hit;
        Vector3      mousePos = m_cam.ScreenToWorldPoint(Input.mousePosition);

        if (hit2D = Physics2D.Raycast(new Vector2(mousePos.x, mousePos.y), Vector3.zero))
        {
            if (hit2D.collider.CompareTag("Interactable"))
            {
                m_tempObj = hit2D.collider.GetComponent <InteractableTrigger>();
                if (m_tempObj != null)
                {
                    m_tempObj.OnTriggerDown();
                }
                else
                {
                    Debug.LogWarning("No InteractableTriggerScript found!");
                }
            }
        }
        else if (Physics.Raycast(ray, out hit, m_castDistance, m_layerMask))
        {
            Debug.DrawLine(ray.origin, hit.point, Color.red, 100f);
            if (hit.collider.CompareTag("Interactable"))
            {
                m_tempObj = hit.collider.GetComponent <InteractableTrigger>();

                if (m_tempObj != null)
                {
                    m_tempObj.OnTriggerDown();
                }
                else
                {
                    Debug.LogWarning("No InteractableTriggerScript found!");
                }
            }
        }
    }