Example #1
0
    private void Update()
    {
        var x = m_Transform.position.x;
        var y = m_Transform.position.y;

        var wentOutOfBounds = false;
        var eventData       = new BoundsCheckerEventData();

        var rightEdge  = m_MaxBounds.x;
        var leftEdge   = m_MinBounds.x;
        var topEdge    = m_MaxBounds.y;
        var bottomEdge = m_MinBounds.y;

        if (m_RelativeToGridBounds)
        {
            rightEdge  += m_ReferenceGrid.m_MaxBounds.x;
            leftEdge   += m_ReferenceGrid.m_MinBounds.x;
            topEdge    += m_ReferenceGrid.m_MaxBounds.y;
            bottomEdge += m_ReferenceGrid.m_MinBounds.y;
        }

        if (m_CheckRight && x >= rightEdge)
        {
            wentOutOfBounds   = true;
            eventData.m_Right = true;
        }
        if (m_CheckLeft && x <= leftEdge)
        {
            wentOutOfBounds  = true;
            eventData.m_Left = true;
        }
        if (m_CheckTop && y >= topEdge)
        {
            wentOutOfBounds = true;
            eventData.m_Top = true;
        }
        if (m_CheckBottom && y <= bottomEdge)
        {
            wentOutOfBounds    = true;
            eventData.m_Bottom = true;
        }

        if (wentOutOfBounds)
        {
            m_Events.WentOutOfBounds.Invoke(eventData);
        }
    }
Example #2
0
 public void OnWentOutOfBounds(BoundsCheckerEventData eventData)
 {
     Die();
 }