Collider not resizing with Sprite Shape by Script

I built a Random Generated Mini Game with SpriteShape Prefabs. The Random Generator moves and changes the Spline of the SpriteShape. But the Edge Collider 2D refreses its size only when I click on the Instantiated Prefab on the Hirarchy.

What can I do to Refresh the Collider


This is the Scene when the World just generated. All Colliders are on the left side.


This is the Scene after I clicked on the first 2 generated layers. The 2 Colliders Refreshed its size to the SpriteShape


This is our code:

        GameObject currentLayer;
        Spline spline;
        int lastXPos = Random.Range(1, maxXPos-2);

        currentLayer = Instantiate(layer);
        currentLayer.transform.parent = gameObject.transform;
        currentLayer.transform.localPosition = new Vector3(0,-(2+i*2));

        spline = currentLayer.GetComponent<SpriteShapeController>().spline;
        spline.SetPosition(0, new Vector3(0, 0));
        spline.SetPosition(1, new Vector3(lastXPos, 0));

Where are your voids? This code isn’t complete enough for me to figure out what’s broken…

This is the complete Code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.U2D;

public class MapGeneratorDropper : MonoBehaviour
{
    [Space(5)]
    public GameObject layer;
    [Space(10)]
    public GameObject leftWall;
    public GameObject rightWall;

    int layerCount;
    int maxXPos = 8;

    void Awake(){
        layerCount = 5;//Random.Range(10, 20);

        maxXPos = (int) rightWall.GetComponent<SpriteShapeController>().spline.GetPosition(1).x;

        for(int i=0; i<layerCount; i++){
            SpawnLayer(i);
        }
    }

    void SpawnLayer(int i){

        GameObject currentLayer;
        Spline spline;
        int lastXPos = Random.Range(1, maxXPos-2);

        currentLayer = Instantiate(layer);
        currentLayer.transform.parent = gameObject.transform;
        currentLayer.transform.localPosition = new Vector3(0,-(2+i*2));

        spline = currentLayer.GetComponent<SpriteShapeController>().spline;
        spline.SetPosition(0, new Vector3(0, 0));
        spline.SetPosition(1, new Vector3(lastXPos, 0));

    }
}