如何避免这个错误?

var bottom = Instantiate(bottom_section, transform.position, transform.rotation);
next_point = bottom.transform.Find("next_point").gameObject;
bottom.transform.parent = this.transform;
add_segment_to_crop_segments(i, bottom);
previous_point = this.gameObject;
segments.Add(bottom);

var bottom = Instantiate(bottom_section, transform.position, transform.rotation);
next_point = bottom.transform.Find("next_point").gameObject;
bottom.transform.parent = this.transform;
add_segment_to_crop_segments(i, bottom);
previous_point = this.gameObject;
segments.Add(bottom);

private void add_segment_to_crop_segments(int i, GameObject segment)
{
    //使用插入因为这样可以插入一个空值,然后再填充它。
    segments_data.Insert(i, null);
    segments_data[i]._segment = segment;
    segments_data[i]._next_point = next_point;
    //不需要担心从具体的对象中获取这些,因为next_point和previous_point在整个脚本中都是全局的。
    //也就是说,当一个对象设置了它们时,所有对象都会设置它们。
    segments_data[i]._previous_point = previous_point;
    segments_data[i].dist_percentage = 0;
}

private void add_segment_to_crop_segments(int i, GameObject segment)
{
    //使用插入因为这样可以插入一个空值,然后再填充它。
    segments_data.Insert(i, null);
    segments_data[i]._segment = segment;
    segments_data[i]._next_point = next_point;
    //不需要担心从具体的对象中获取这些,因为next_point和previous_point在整个脚本中都是全局的。
    //也就是说,当一个对象设置了它们时,所有对象都会设置它们。
    segments_data[i]._previous_point = previous_point;
    segments_data[i].dist_percentage = 0;
}

解决方案:
1. 删除重复的代码块。
2. 检查segments_data是否已经初始化,如果没有,进行初始化。
3. 检查bottom_section是否已经被实例化,如果没有,进行实例化。
4. 检查next_pointprevious_point是否已经设置,如果没有,设置它们。
5. 检查segments集合是否已经添加了bottom对象,如果没有,添加它。