void UpdatePrevNext() { float TimelineT = Timeline.instance.GetT(); IEnumerator enumerator = keyframeList.GetEnumerator(); TimelineKeyFrame lastKeyframe = null; while (enumerator.MoveNext()) { TimelineKeyFrame aKeyframe = (TimelineKeyFrame)enumerator.Current; if (aKeyframe.GetT() >= TimelineT) { // inital set both to the same incase this is the first; prevKeyframe = aKeyframe; nextKeyframe = aKeyframe; if (lastKeyframe != null) { prevKeyframe = lastKeyframe; } //leave the loop now we have both keyframes break; } lastKeyframe = (TimelineKeyFrame)enumerator.Current; } }
// Use this for initialization void Start() { keyframeList = new ArrayList(); ghostList = new ArrayList(); int num = Random.Range(2, 5); for (int i = 0; i <= num; i++) { float t = i / (float)num; TimelineKeyFrame frame = new TimelineKeyFrame(t, new Vector3(Random.value * 100, Random.value * 100, Random.value * 100), Vector3.zero); // new Vector3(Random.value * 360, Random.value * 360, Random.value * 360) ); keyframeList.Add(frame); } // TimelineKeyFrame end = new TimelineKeyFrame(1, new Vector3(0, 10, 20) , Vector3.forward); ///TimelineKeyFrame mid = new TimelineKeyFrame(0.5f, new Vector3(1, 15, 15) , Vector3.forward); keyframeList.Sort(); movementPath = GetComponent <LineRenderer>(); }
public void Init(TimelineKeyFrame TimelineKeyFrameIN, TimeLineObject TimeLineObjectIN) { timelineKeyFrame = TimelineKeyFrameIN; TimeLineObject = TimeLineObjectIN; transform.position = timelineKeyFrame.GetPos(); transform.rotation = Quaternion.LookRotation(transform.forward) * Quaternion.Euler(timelineKeyFrame.GetDir().x, timelineKeyFrame.GetDir().y, timelineKeyFrame.GetDir().z); }
public int CompareTo(object obj) { TimelineKeyFrame other = (TimelineKeyFrame)obj; if (this.t > other.t) { return(1); } else if (this.t < other.t) { return(-1); } else { return(0); } }