public void SubscribeSubmesh(RoadSegmentSubmesh submesh)
 {
     if (!subMeshes.Contains(submesh))
     {
         subMeshes.Add(submesh);
     }
 }
    public override void OnInspectorGUI()
    {
        road = target as RoadSegmentSubmesh;
        if (GUILayout.Button("Remove submesh"))
        {
            Undo.RecordObject(road, "Removed submesh");
            road.OnDestroyThis();
        }

        base.OnInspectorGUI();
    }
    public void CreateNewSubmesh()
    {
        GameObject         go      = new GameObject();
        RoadSegmentSubmesh submesh = go.AddComponent <RoadSegmentSubmesh>();

        submesh.Init(this, values, newShape, newMaterial);
        go.transform.parent        = transform;
        go.transform.localRotation = Quaternion.identity;
        go.transform.localPosition = Vector3.zero;
        newShape    = null;
        newMaterial = null;

        if (subMeshes == null)
        {
            subMeshes = new List <RoadSegmentSubmesh>();
        }

        subMeshes.Add(submesh);
    }
 public void RemoveEntry(RoadSegmentSubmesh submesh)
 {
     subMeshes.Remove(submesh);
 }