155 lines
4.1 KiB
C#
155 lines
4.1 KiB
C#
using System;
|
|
using UnityEngine.Audio;
|
|
using UnityEngine.Playables;
|
|
|
|
namespace UnityEngine.Timeline
|
|
{
|
|
// Token: 0x0200000B RID: 11
|
|
internal class ScheduleRuntimeClip : RuntimeClipBase
|
|
{
|
|
// Token: 0x06000053 RID: 83 RVA: 0x0000431A File Offset: 0x0000251A
|
|
public ScheduleRuntimeClip(TimelineClip clip, Playable clipPlayable, Playable parentMixer, double startDelay = 0.2, double finishTail = 0.1)
|
|
{
|
|
this.Create(clip, clipPlayable, parentMixer, startDelay, finishTail);
|
|
}
|
|
|
|
// Token: 0x1700000E RID: 14
|
|
// (get) Token: 0x06000054 RID: 84 RVA: 0x00004338 File Offset: 0x00002538
|
|
public override double start
|
|
{
|
|
get
|
|
{
|
|
return Math.Max(0.0, this.m_Clip.start - this.m_StartDelay);
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700000F RID: 15
|
|
// (get) Token: 0x06000055 RID: 85 RVA: 0x00004370 File Offset: 0x00002570
|
|
public override double duration
|
|
{
|
|
get
|
|
{
|
|
return this.m_Clip.duration + this.m_FinishTail + this.m_Clip.start - this.start;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000056 RID: 86 RVA: 0x000043AA File Offset: 0x000025AA
|
|
public void SetTime(double time)
|
|
{
|
|
this.m_Playable.SetTime(time);
|
|
}
|
|
|
|
// Token: 0x17000010 RID: 16
|
|
// (get) Token: 0x06000057 RID: 87 RVA: 0x000043BC File Offset: 0x000025BC
|
|
public TimelineClip clip
|
|
{
|
|
get
|
|
{
|
|
return this.m_Clip;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000011 RID: 17
|
|
// (get) Token: 0x06000058 RID: 88 RVA: 0x000043D8 File Offset: 0x000025D8
|
|
public Playable mixer
|
|
{
|
|
get
|
|
{
|
|
return this.m_ParentMixer;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000012 RID: 18
|
|
// (get) Token: 0x06000059 RID: 89 RVA: 0x000043F4 File Offset: 0x000025F4
|
|
public Playable playable
|
|
{
|
|
get
|
|
{
|
|
return this.m_Playable;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600005A RID: 90 RVA: 0x0000440F File Offset: 0x0000260F
|
|
private void Create(TimelineClip clip, Playable clipPlayable, Playable parentMixer, double startDelay, double finishTail)
|
|
{
|
|
this.m_Clip = clip;
|
|
this.m_Playable = clipPlayable;
|
|
this.m_AudioClipPlayable = (AudioClipPlayable)clipPlayable;
|
|
this.m_ParentMixer = parentMixer;
|
|
this.m_StartDelay = startDelay;
|
|
this.m_FinishTail = finishTail;
|
|
clipPlayable.SetPlayState(PlayState.Paused);
|
|
}
|
|
|
|
// Token: 0x17000013 RID: 19
|
|
// (set) Token: 0x0600005B RID: 91 RVA: 0x0000444C File Offset: 0x0000264C
|
|
public override bool enable
|
|
{
|
|
set
|
|
{
|
|
PlayState playState = ((!value) ? PlayState.Paused : PlayState.Playing);
|
|
PlayState playState2 = this.m_Playable.GetPlayState<Playable>();
|
|
if (playState != playState2)
|
|
{
|
|
this.m_Playable.SetPlayState(playState);
|
|
if (playState == PlayState.Paused && this.m_ParentMixer.IsValid<Playable>())
|
|
{
|
|
this.m_ParentMixer.SetInputWeight(this.m_Playable, 0f);
|
|
}
|
|
}
|
|
this.m_Started = this.m_Started && value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600005C RID: 92 RVA: 0x000044C4 File Offset: 0x000026C4
|
|
public override void EvaluateAt(double localTime, FrameData frameData)
|
|
{
|
|
if (frameData.timeHeld)
|
|
{
|
|
this.enable = false;
|
|
}
|
|
else
|
|
{
|
|
bool flag = frameData.seekOccurred || frameData.timeLooped || frameData.evaluationType == FrameData.EvaluationType.Evaluate;
|
|
if (localTime <= this.start + this.duration - this.m_FinishTail)
|
|
{
|
|
float num = this.clip.EvaluateMixIn(localTime) * this.clip.EvaluateMixOut(localTime);
|
|
if (this.mixer.IsValid<Playable>())
|
|
{
|
|
this.mixer.SetInputWeight(this.playable, num);
|
|
}
|
|
if (!this.m_Started || flag)
|
|
{
|
|
double num2 = this.clip.ToLocalTime(Math.Max(localTime, this.clip.start));
|
|
double num3 = Math.Max(this.clip.start - localTime, 0.0) * this.clip.timeScale;
|
|
double num4 = this.m_Clip.duration * this.clip.timeScale;
|
|
this.m_AudioClipPlayable.Seek(num2, num3, num4);
|
|
this.m_Started = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000017 RID: 23
|
|
private TimelineClip m_Clip;
|
|
|
|
// Token: 0x04000018 RID: 24
|
|
private Playable m_Playable;
|
|
|
|
// Token: 0x04000019 RID: 25
|
|
private AudioClipPlayable m_AudioClipPlayable;
|
|
|
|
// Token: 0x0400001A RID: 26
|
|
private Playable m_ParentMixer;
|
|
|
|
// Token: 0x0400001B RID: 27
|
|
private double m_StartDelay;
|
|
|
|
// Token: 0x0400001C RID: 28
|
|
private double m_FinishTail;
|
|
|
|
// Token: 0x0400001D RID: 29
|
|
private bool m_Started = false;
|
|
}
|
|
}
|