/// <summary> /// Maakt een nieuwe waypoint na de huidige aan /// </summary> public void InsertAfter(V3WayPointObject wo) { // Doe hetzelfde als append als het geselecteerde object de laatste is. if (wo.indexInWayPointSystem == elements.Count - 1) { Append(); } // Voeg in alle andere gevallen gewoon in na de huidige. else { V3WayPointObject woNext = elements[wo.indexInWayPointSystem + 1]; V3WayPointObject woNew = CreateWayPoint(); woNew.indexInWayPointSystem = wo.indexInWayPointSystem + 1; woNew.transform.parent = transform; woNew.transform.SetSiblingIndex(woNew.indexInWayPointSystem); woNew.name = currentPrefab.name + woNew.indexInWayPointSystem; elements.Insert(woNew.indexInWayPointSystem, woNew); //UpdateNamesAndIndicesFromIndex(woNew.indexInWayPointSystem + 1); woNew.transform.position = Vector3.Lerp(wo.transform.position, woNext.transform.position, .5f); UpdateEverything(); } }
/// <summary> /// Voeg een nieuwe waypoint aan het begin of einde toe. /// </summary> /// <param name="append"></param> private void AppendOrPrepend(bool append) { V3WayPointObject wo = CreateWayPoint(); wo.indexInWayPointSystem = append ? transform.childCount : 0; wo.transform.parent = transform; wo.transform.SetSiblingIndex(wo.indexInWayPointSystem); wo.name = currentPrefab.name + wo.indexInWayPointSystem; elements.Insert(wo.indexInWayPointSystem, wo); Vector3 tmpPos = transform.position; if (wo.indexInWayPointSystem > 0) { V3WayPointObject woPrev = elements[wo.indexInWayPointSystem - 1]; tmpPos = woPrev.transform.position + woPrev.transform.forward * -10; } else if (elements.Count > 1) { V3WayPointObject woPrev = elements[wo.indexInWayPointSystem + 1]; tmpPos = woPrev.transform.position + woPrev.transform.forward * 10; } wo.transform.position = tmpPos; UpdateEverything(); }
/// <summary> /// Verwijdert een waypoint van de lijst en werkt alle andere bij. /// </summary> /// <param name="wo"></param> /// <param name="index"></param> public void RemoveWayPoint(V3WayPointObject wo, int index) { elements.Remove(wo); UpdateEverything(); //UpdateNamesAndIndicesFromIndex(index); }