Files
Dec2017-Script-Dump/UnityEngine.Timeline/Timeline/ScheduleRuntimeClip.cs
T
2026-06-04 11:42:34 +02:00

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;
}
}