Representing 2d areas in Unity

What’s a good way to represent 2D areas in Unity that have no other interaction other than that they exist?

I want to define 2D areas in a 2D game level. There are lots of 2D things in unity but they all have behavior. For example a BoxCollider2D does collision. An AreaEffector2D effects an area. I need a similar object but I don’t want any behavior, just the data.

I tried creating a BoxCollider2D but having it disabled. That didn’t work, its bounds are not set unless it’s enabled. I could add a script to disable itself the moment it starts but that seems like a hacky solution.

I can write a custom object but then I’d also have to write a custom editor (to set the extents) and a custom OnDrawGUI to see it in it in the editor.

Am I missing the obvious solution?

I have the exact same need and this is the best I could come up with: I’d use BoxCollider2D, then in the script of that GameObject, in Start(), I copy all the information into an Array of Rect and afterwards disable the collider.

BoxCollider2D[] colliders = GetComponents<BoxCollider2D>();
        foreach(BoxCollider2D collider in colliders)
        {
            _areas.Add(new Rect(collider.offset.x - collider.size.x * 0.5f, collider.offset.y - collider.size.y * 0.5f, collider.size.x, collider.size.y));
            collider.enabled = false;
        }