Unity递归生成问题

问题遇到的现象和发生背景

Unity使用递归出现场景父子级错误,但没代码里父子级没问题

问题相关代码,请勿粘贴截图

父类所挂载的类
public class Create_Circle_Sup : MonoBehaviour
{

private void Start()
{
    name = this.gameObject.name;
    Create_Child();
}
public String name
{
    private set { this.gameObject.name = value; }
    get { return gameObject.name; }
}
//递归层级
private int recurve_Layer=0;
//最大递归层级
[Header("最大递归层级")] public int recurve_Layer_Max;
//同级最大数量
[Header("最大层级数量")]public int peer_Max;
//子对象
[Header("子对象链接")] public GameObject child_Object;
//下级对象
private List<GameObject> child_GameObject = new List();
void Create_Child()
//创建子级函数
{
    for (int i = 0; i < peer_Max; i++)
    {
        //创建对象
        child_GameObject.Add(GameObject.Instantiate(child_Object));
        child_GameObject[0].GetComponent().Initialize_Self(
            this.transform,
            (this.name + $"_{i}号"),
            this.recurve_Layer + 1,
            recurve_Layer_Max,
            i,
            this.peer_Max);
    }
}

}
子类所挂载的类
public class Create_Circle_Sub : MonoBehaviour
{
//名字
public String name
{
private set { this.gameObject.name = value;}
get { return gameObject.name; }
}

public String parentObject;
//递归层级
public int recurve_Layer { private set; get; }
//最大递归层级
public int recurve_Layer_Max { private set; get; }
//同级序号
public int peer_Number { private set; get; }
//同级最大数量
public int peer_Max { private set; get; }
//下级对象
private List<GameObject> child_GameObject=new List();
public  void Initialize_Self(Transform parent,String name,int recurve_Layer,int recurve_LayerMax,int peer_Number,int peer_Max)
//初始化自身
{
    Debug.Log($"自身对象:{this.gameObject.name},父级对象:{parent.name}");

    #region 初始化自身数据
    //设定父级
    this.transform.parent=parent;
    //设定名字
    this.name = name;
    //设定递归图层
    this.recurve_Layer = recurve_Layer;
    //设定同级序号
    this.peer_Number = peer_Number;
    //设定最大同级数量
    this.peer_Max = peer_Max;

    this.parentObject = parent.name;
    #endregion

    //如果递归层级小于最大值
    if (recurve_Layer< recurve_LayerMax)
    {
        //就创建子对象
        Create_ChildObject();
    }

}

void Create_ChildObject()
//创造子对象
{
    for (int i = 0; i < peer_Max; i++)
    {
        //创建对象
        child_GameObject.Add(GameObject.Instantiate(this.gameObject));
        child_GameObject[0].GetComponent().Initialize_Self(
            this.transform,
            (this.name + $"_{i}号"),
            this.recurve_Layer + 1,
            recurve_Layer_Max,
            i,
            this.peer_Max);
    }
}

}

运行结果及报错内容

运行结果:

img

我想要达到的结果

img

Instantiate出来的对象没有指定父级