Unity 2D game chunking

I want to make a non-tiled (without use of tilemaps) open world. I have figured out that scene based system is not really good at open worlds building, so i came up with creating single scene with many square planes. My scripts are automatically creating pieces of textures and materials for each plane. So, if the world is that big i want it to be, i get a ram problem: all this textures are about 1gb.

It would be nice to do like an occlusion culling for them, so textures near the camera are loaded in ram, anything else is not.
I already tried to make it, but my perfomance is really bad.

This is my script located on Camera object:

void Update() {
        if (playerRB.velocity == Vector2.zero) return;
        
        var coords = Vector2Int.RoundToInt(transform.position / 10);
        
        for (var x = -1; x <= 1; x++) {
            for (var y = -1; y <= 1; y++) {
                var chunk = _terrainRoot.GetChunk(coords + new Vector2Int(x, y));
                _terrainRoot.ActivateChunk(chunk);
                _activeChunks.Add(chunk);
            }
        }

        for (var i = _activeChunks.Count - 1; i >= 0; i--) {
            if (_activeChunks[i].isVisible) continue;
            _terrainRoot.DeactivateChunk(_activeChunks[i]);
            _activeChunks.RemoveAt(i);
        }

        Resources.UnloadUnusedAssets();
    }

I understand that it is not good decision to make so much operations in update. Mybe someone knows better options?
Thank you very much for any hint.