using System; using UnityEngine.Playables; namespace UnityEngine.Timeline { // Token: 0x02000020 RID: 32 internal class ActivationMixerPlayable : PlayableBehaviour { // Token: 0x17000064 RID: 100 // (get) Token: 0x0600013D RID: 317 RVA: 0x00006AF0 File Offset: 0x00004CF0 // (set) Token: 0x0600013E RID: 318 RVA: 0x00006B0A File Offset: 0x00004D0A public GameObject boundGameObject { get; set; } // Token: 0x0600013F RID: 319 RVA: 0x00006B14 File Offset: 0x00004D14 public static ScriptPlayable Create(PlayableGraph graph, int inputCount) { return ScriptPlayable.Create(graph, inputCount); } // Token: 0x17000065 RID: 101 // (get) Token: 0x06000140 RID: 320 RVA: 0x00006B30 File Offset: 0x00004D30 // (set) Token: 0x06000141 RID: 321 RVA: 0x00006B4B File Offset: 0x00004D4B public ActivationTrack.PostPlaybackState postPlaybackState { get { return this.m_PostPlaybackState; } set { this.m_PostPlaybackState = value; } } // Token: 0x06000142 RID: 322 RVA: 0x00006B55 File Offset: 0x00004D55 public override void OnGraphStart(Playable playable) { if (this.boundGameObject != null) { this.m_BoundGameObjectInitialStateIsActive = this.boundGameObject.activeInHierarchy; } } // Token: 0x06000143 RID: 323 RVA: 0x00006B7C File Offset: 0x00004D7C public override void OnGraphStop(Playable playable) { if (!(this.boundGameObject == null)) { if (!Application.isPlaying) { this.boundGameObject.SetActive(this.m_BoundGameObjectInitialStateIsActive); } else { switch (this.m_PostPlaybackState) { case ActivationTrack.PostPlaybackState.Active: this.boundGameObject.SetActive(true); break; case ActivationTrack.PostPlaybackState.Inactive: this.boundGameObject.SetActive(false); break; case ActivationTrack.PostPlaybackState.Revert: this.boundGameObject.SetActive(this.m_BoundGameObjectInitialStateIsActive); break; } } } } // Token: 0x06000144 RID: 324 RVA: 0x00006C20 File Offset: 0x00004E20 public override void ProcessFrame(Playable playable, FrameData info, object playerData) { GameObject gameObject = playerData as GameObject; if (!(gameObject == null) && !(gameObject != this.boundGameObject)) { int inputCount = playable.GetInputCount(); bool flag = false; for (int i = 0; i < inputCount; i++) { if (playable.GetInputWeight(i) > 0f) { flag = true; break; } } gameObject.SetActive(flag); } } // Token: 0x0400008C RID: 140 private ActivationTrack.PostPlaybackState m_PostPlaybackState; // Token: 0x0400008D RID: 141 private bool m_BoundGameObjectInitialStateIsActive; } }