public Wagon AddWagon() { GameObject wagonObject = new GameObject("Wagon"); Wagon wagon = wagonObject.AddComponent <Wagon>(); float wagonDistance = Wagons.Sum(x => Wagon.Length) + (Wagons.Count * WagonConnectionLength); RailPathPosition wagonPosition = GetBackwardsPathPosition(RailPosition, wagonDistance); wagon.InitWagon(this, wagonPosition); Wagons.Add(wagon); wagon.transform.SetParent(transform); wagon.transform.localPosition = Vector3.zero; UpdatePosition(); return(wagon); }