summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs71
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs.meta11
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs29
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs.meta11
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs93
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs.meta11
6 files changed, 226 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs
new file mode 100644
index 0000000..61054f7
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs
@@ -0,0 +1,71 @@
+using UnityEngine.Playables;
+
+namespace UnityEngine.Timeline
+{
+ class ActivationMixerPlayable : PlayableBehaviour
+ {
+ ActivationTrack.PostPlaybackState m_PostPlaybackState;
+ bool m_BoundGameObjectInitialStateIsActive;
+
+ private GameObject m_BoundGameObject;
+
+
+ public static ScriptPlayable<ActivationMixerPlayable> Create(PlayableGraph graph, int inputCount)
+ {
+ return ScriptPlayable<ActivationMixerPlayable>.Create(graph, inputCount);
+ }
+
+ public ActivationTrack.PostPlaybackState postPlaybackState
+ {
+ get { return m_PostPlaybackState; }
+ set { m_PostPlaybackState = value; }
+ }
+
+ public override void OnPlayableDestroy(Playable playable)
+ {
+ if (m_BoundGameObject == null)
+ return;
+
+ switch (m_PostPlaybackState)
+ {
+ case ActivationTrack.PostPlaybackState.Active:
+ m_BoundGameObject.SetActive(true);
+ break;
+ case ActivationTrack.PostPlaybackState.Inactive:
+ m_BoundGameObject.SetActive(false);
+ break;
+ case ActivationTrack.PostPlaybackState.Revert:
+ m_BoundGameObject.SetActive(m_BoundGameObjectInitialStateIsActive);
+ break;
+ case ActivationTrack.PostPlaybackState.LeaveAsIs:
+ default:
+ break;
+ }
+ }
+
+ public override void ProcessFrame(Playable playable, FrameData info, object playerData)
+ {
+ if (m_BoundGameObject == null)
+ {
+ m_BoundGameObject = playerData as GameObject;
+ m_BoundGameObjectInitialStateIsActive = m_BoundGameObject != null && m_BoundGameObject.activeSelf;
+ }
+
+ if (m_BoundGameObject == null)
+ return;
+
+ int inputCount = playable.GetInputCount();
+ bool hasInput = false;
+ for (int i = 0; i < inputCount; i++)
+ {
+ if (playable.GetInputWeight(i) > 0)
+ {
+ hasInput = true;
+ break;
+ }
+ }
+
+ m_BoundGameObject.SetActive(hasInput);
+ }
+ }
+}
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs.meta b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs.meta
new file mode 100644
index 0000000..7ce2073
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationMixerPlayable.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e165a99d845c10e4ea0f546e542e8684
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs
new file mode 100644
index 0000000..7304741
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs
@@ -0,0 +1,29 @@
+#if UNITY_EDITOR
+using System.ComponentModel;
+#endif
+using UnityEngine.Playables;
+
+namespace UnityEngine.Timeline
+{
+ /// <summary>
+ /// Playable Asset class for Activation Tracks
+ /// </summary>
+#if UNITY_EDITOR
+ [DisplayName("Activation Clip")]
+#endif
+ class ActivationPlayableAsset : PlayableAsset, ITimelineClipAsset
+ {
+ /// <summary>
+ /// Returns a description of the features supported by activation clips
+ /// </summary>
+ public ClipCaps clipCaps { get { return ClipCaps.None; } }
+
+ /// <summary>
+ /// Overrides PlayableAsset.CreatePlayable() to inject needed Playables for an activation asset
+ /// </summary>
+ public override Playable CreatePlayable(PlayableGraph graph, GameObject go)
+ {
+ return Playable.Create(graph);
+ }
+ }
+}
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs.meta b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs.meta
new file mode 100644
index 0000000..e22155a
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationPlayableAsset.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fde0d25a170598d46a0b9dc16b4527a5
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs
new file mode 100644
index 0000000..8e06ddb
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs
@@ -0,0 +1,93 @@
+using System;
+using UnityEngine.Playables;
+
+namespace UnityEngine.Timeline
+{
+ /// <summary>
+ /// Track that can be used to control the active state of a GameObject.
+ /// </summary>
+ [Serializable]
+ [TrackClipType(typeof(ActivationPlayableAsset))]
+ [TrackBindingType(typeof(GameObject))]
+ [ExcludeFromPreset]
+ public class ActivationTrack : TrackAsset
+ {
+ [SerializeField]
+ PostPlaybackState m_PostPlaybackState = PostPlaybackState.LeaveAsIs;
+ ActivationMixerPlayable m_ActivationMixer;
+
+ /// <summary>
+ /// Specify what state to leave the GameObject in after the Timeline has finished playing.
+ /// </summary>
+ public enum PostPlaybackState
+ {
+ /// <summary>
+ /// Set the GameObject to active.
+ /// </summary>
+ Active,
+
+ /// <summary>
+ /// Set the GameObject to Inactive.
+ /// </summary>
+ Inactive,
+
+ /// <summary>
+ /// Revert the GameObject to the state in was in before the Timeline was playing.
+ /// </summary>
+ Revert,
+
+ /// <summary>
+ /// Leave the GameObject in the state it was when the Timeline was stopped.
+ /// </summary>
+ LeaveAsIs
+ }
+
+ internal override bool CanCompileClips()
+ {
+ return !hasClips || base.CanCompileClips();
+ }
+
+ /// <summary>
+ /// Specifies what state to leave the GameObject in after the Timeline has finished playing.
+ /// </summary>
+ public PostPlaybackState postPlaybackState
+ {
+ get { return m_PostPlaybackState; }
+ set { m_PostPlaybackState = value; UpdateTrackMode(); }
+ }
+
+ /// <inheritdoc/>
+ public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
+ {
+ var mixer = ActivationMixerPlayable.Create(graph, inputCount);
+ m_ActivationMixer = mixer.GetBehaviour();
+
+ UpdateTrackMode();
+
+ return mixer;
+ }
+
+ internal void UpdateTrackMode()
+ {
+ if (m_ActivationMixer != null)
+ m_ActivationMixer.postPlaybackState = m_PostPlaybackState;
+ }
+
+ /// <inheritdoc/>
+ public override void GatherProperties(PlayableDirector director, IPropertyCollector driver)
+ {
+ var gameObject = GetGameObjectBinding(director);
+ if (gameObject != null)
+ {
+ driver.AddFromName(gameObject, "m_IsActive");
+ }
+ }
+
+ /// <inheritdoc/>
+ protected override void OnCreateClip(TimelineClip clip)
+ {
+ clip.displayName = "Active";
+ base.OnCreateClip(clip);
+ }
+ }
+}
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs.meta b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs.meta
new file mode 100644
index 0000000..82ab218
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Activation/ActivationTrack.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 21bf7f712d84d26478ebe6a299f21738
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: