public void AddAnimationTrack(AnimatedObject obj) { GameObject g = Instantiate(timeline.trackPrefab.gameObject, timeline.transform.parent); g.transform.rotation = timeline.trackPrefab.transform.rotation; g.transform.localScale = timeline.trackPrefab.transform.localScale; AnimationTrack newTrack = g.GetComponent <AnimationTrack>(); animationTracks.Add(newTrack); int trackIndex = animationTracks.IndexOf(newTrack); Vector3 newTrackPosition = TimelineTrackPosition(trackIndex); newTrack.SetUpTrackProperties(obj, newTrackPosition, timeline, trackIndex, timeline.trackPrefab.unselectedColor, timeline.trackPrefab.selectedColor); obj.animTrack = newTrack; /// add animationOwner GameObject trackOwner = Instantiate(timeline.timelineTrackOwnerPrefab.gameObject, timeline.transform); Debug.Log("created trackOwner " + trackOwner); trackOwner.transform.rotation = timeline.timelineTrackOwnerPrefab.transform.rotation; trackOwner.transform.localScale = new Vector3(1, 1, 1); trackOwner.transform.localPosition = TimelineTrackOwnerPosition(trackIndex); TimelineTrackOwner newTrackOwner = trackOwner.GetComponent <TimelineTrackOwner>(); newTrack.timelineTrackOwner = newTrackOwner; newTrackOwner.track = newTrack; }