void Sense()
    {
        Vector3 origin = transform.position;

        origin += transform.forward * 0.1f;

        RaycastHit hitInfo;

        if (Physics.Raycast(origin, transform.forward * -1f, out hitInfo, maxRange))
        {
            lastObjectSensed = hitInfo.collider.gameObject.tag;
            lastDistSensed   = hitInfo.distance;

            BarrierPiece b = hitInfo.collider.gameObject.GetComponent <BarrierPiece>();

            if (b != null)
            {
                if (!b.hasBeenHit && onDetectCB != null)
                {
                    onDetectCB.Invoke();
                }

                b.OnSensorDetected();
            }

            sensorIndicator.position = hitInfo.point;
        }
        else
        {
            sensorIndicator.localPosition = sensorIndicatorStart;
            lastObjectSensed = "none";
            lastDistSensed   = maxRange;
        }
    }
 public Barrier(Coordinate coordinate, BarrierOrientation orientation, BarrierPiece piece)
 {
     Coordinate  = coordinate;
     Orientation = orientation;
     Piece       = piece;
 }