diff options
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation')
4 files changed, 121 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs new file mode 100644 index 0000000..a7552f1 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs @@ -0,0 +1,56 @@ +using JetBrains.Annotations; +using UnityEngine; +using UnityEngine.Timeline; +using UnityEngine.Playables; + +namespace UnityEditor.Timeline +{ + [UsedImplicitly] + [CustomTimelineEditor(typeof(ActivationTrack))] + class ActivationTrackEditor : TrackEditor + { + static readonly string ClipText = LocalizationDatabase.GetLocalizedString("Active"); + + static readonly string k_ErrorParentString = LocalizationDatabase.GetLocalizedString("The bound GameObject is a parent of the PlayableDirector."); + static readonly string k_ErrorString = LocalizationDatabase.GetLocalizedString("The bound GameObject contains the PlayableDirector."); + + public override TrackDrawOptions GetTrackOptions(TrackAsset track, Object binding) + { + var options = base.GetTrackOptions(track, binding); + options.errorText = GetErrorText(track, binding); + return options; + } + + string GetErrorText(TrackAsset track, Object binding) + { + var gameObject = binding as GameObject; + var currentDirector = TimelineEditor.inspectedDirector; + if (gameObject != null && currentDirector != null) + { + var director = gameObject.GetComponent<PlayableDirector>(); + if (currentDirector == director) + { + return k_ErrorString; + } + + if (currentDirector.gameObject.transform.IsChildOf(gameObject.transform)) + { + return k_ErrorParentString; + } + } + + return base.GetErrorText(track, binding, TrackBindingErrors.PrefabBound); + } + + public override void OnCreate(TrackAsset track, TrackAsset copiedFrom) + { + // Add a default clip to the newly created track + if (copiedFrom == null) + { + var clip = track.CreateClip(0); + clip.displayName = ClipText; + clip.duration = System.Math.Max(clip.duration, track.timelineAsset.duration * 0.5f); + } + } + } +} diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs.meta b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs.meta new file mode 100644 index 0000000..64f81a1 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4fbcc9b1f6ace8c4f8724a88dccca5f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs new file mode 100644 index 0000000..f391e69 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs @@ -0,0 +1,43 @@ +using UnityEngine; +using UnityEngine.Timeline; + +namespace UnityEditor.Timeline +{ + [CustomEditor(typeof(ActivationTrack))] + class ActivationTrackInspector : TrackAssetInspector + { + static class Styles + { + public static readonly GUIContent PostPlaybackStateText = EditorGUIUtility.TrTextContent("Post-playback state"); + } + + SerializedProperty m_PostPlaybackProperty; + + public override void OnInspectorGUI() + { + using (new EditorGUI.DisabledScope(IsTrackLocked())) + { + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + + if (m_PostPlaybackProperty != null) + EditorGUILayout.PropertyField(m_PostPlaybackProperty, Styles.PostPlaybackStateText); + + if (EditorGUI.EndChangeCheck()) + { + serializedObject.ApplyModifiedProperties(); + var activationTrack = target as ActivationTrack; + if (activationTrack != null) + activationTrack.UpdateTrackMode(); + } + } + } + + public override void OnEnable() + { + base.OnEnable(); + m_PostPlaybackProperty = serializedObject.FindProperty("m_PostPlaybackState"); + } + } +} diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs.meta b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs.meta new file mode 100644 index 0000000..9c3910c --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Activation/ActivationTrackInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c46b007a3762fc84cb1ee7ca30060f0b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |
