public static TweenSequence.Builder singleBuilder(this TweenSequenceElement element) { var builder = TweenSequence.Builder.create(); builder.append(element); return(builder); }
/// <summary>Inserts element into the sequence at specific time.</summary> public Builder insert(float at, TweenSequenceElement element) { var endsAt = at + element.duration; totalDuration = Mathf.Max(totalDuration, endsAt); effects.Add(new Effect(at, endsAt, element)); return(this); }
// optimized for minimal allocations public static TweenSequence single(TweenSequenceElement sequence, float delay = 0) => new TweenSequence( sequence.duration + delay, new [] { new Effect(delay, sequence.duration + delay, sequence) } );
public Effect(float startsAt, float endsAt, TweenSequenceElement element) { this.startsAt = startsAt; this.endsAt = endsAt; this.element = element; }
public static TweenSequence single(this TweenSequenceElement element) => TweenSequence.single(element);
public Builder append(TweenSequenceElement element, out float elementEndsAt) => insert(totalDuration, element, out elementEndsAt);
public float append2(TweenSequenceElement element) => insert2(totalDuration, element);
public Builder append(TweenSequenceElement element) => insert(totalDuration, element);
/// <see cref="insert(float,TweenSequenceElement)"/> /// <param name="at"></param> /// <param name="element"></param> /// <param name="elementEndsAt">Time when the given element will end.</param> public Builder insert(float at, TweenSequenceElement element, out float elementEndsAt) { insert(at, element); elementEndsAt = at + element.duration; return(this); }
/// <see cref="insert(float,TweenSequenceElement)"/> /// <returns>Time when the given element will end.</returns> public float insert2(float at, TweenSequenceElement element) { insert(at, element); return(at + element.duration); }
public static TweenManager managed( this TweenSequenceElement sequence, TweenManager.Loop looping, TweenTime time = TweenTime.OnUpdate, float delay = 0 ) => new TweenManager(TweenSequence.single(sequence, delay), time, looping);
public static TweenManager managed( this TweenSequenceElement sequence, TweenTime time = TweenTime.OnUpdate, float delay = 0 ) => sequence.managed(TweenManager.Loop.single, time, delay);