.vs
Assets
Library
APIUpdater
Artifacts
Bee
BuildPlayerData
PackageCache
com.unity.collab-proxy@2.5.2
com.unity.editorcoroutines@1.0.0
com.unity.ext.nunit@1.0.6
com.unity.feature.development@1.0.1
com.unity.ide.rider@3.0.31
com.unity.ide.visualstudio@2.0.22
com.unity.ide.vscode@1.2.5
com.unity.modules.ai@1.0.0
com.unity.modules.androidjni@1.0.0
com.unity.modules.animation@1.0.0
com.unity.modules.assetbundle@1.0.0
com.unity.modules.audio@1.0.0
com.unity.modules.cloth@1.0.0
com.unity.modules.director@1.0.0
com.unity.modules.imageconversion@1.0.0
com.unity.modules.imgui@1.0.0
com.unity.modules.jsonserialize@1.0.0
com.unity.modules.particlesystem@1.0.0
com.unity.modules.physics2d@1.0.0
com.unity.modules.physics@1.0.0
com.unity.modules.screencapture@1.0.0
com.unity.modules.subsystems@1.0.0
com.unity.modules.terrain@1.0.0
com.unity.modules.terrainphysics@1.0.0
com.unity.modules.tilemap@1.0.0
com.unity.modules.ui@1.0.0
com.unity.modules.uielements@1.0.0
com.unity.modules.umbra@1.0.0
com.unity.modules.unityanalytics@1.0.0
com.unity.modules.unitywebrequest@1.0.0
com.unity.modules.unitywebrequestassetbundle@1.0.0
com.unity.modules.unitywebrequestaudio@1.0.0
com.unity.modules.unitywebrequesttexture@1.0.0
com.unity.modules.unitywebrequestwww@1.0.0
com.unity.modules.vehicles@1.0.0
com.unity.modules.video@1.0.0
com.unity.modules.vr@1.0.0
com.unity.modules.wind@1.0.0
com.unity.modules.xr@1.0.0
com.unity.performance.profile-analyzer@1.2.2
com.unity.settings-manager@2.0.1
com.unity.test-framework@1.1.33
com.unity.testtools.codecoverage@1.2.6
com.unity.textmeshpro@3.0.6
com.unity.timeline@1.7.6
DocCodeExamples
Documentation~
Editor
Runtime
Activation
Animation
AssetUpgrade
Attributes
Audio
Control
Evaluation
Events
Extensions
TrackExtensions.cs
TrackExtensions.cs.meta
Playables
Properties
Scripting
Utilities
Activation.meta
Animation.meta
AssetUpgrade.meta
Attributes.meta
Audio.meta
ClipCaps.cs
ClipCaps.cs.meta
Control.meta
DiscreteTime.cs
DiscreteTime.cs.meta
Evaluation.meta
Events.meta
Extensions.meta
GroupTrack.cs
GroupTrack.cs.meta
ILayerable.cs
ILayerable.cs.meta
Playables.meta
Properties.meta
Scripting.meta
Timeline.deprecated.cs
Timeline.deprecated.cs.meta
TimelineAsset.cs
TimelineAsset.cs.meta
TimelineAsset_CreateRemove.cs
TimelineAsset_CreateRemove.cs.meta
TimelineAttributes.cs
TimelineAttributes.cs.meta
TimelineClip.cs
TimelineClip.cs.meta
TimelinePlayable.cs
TimelinePlayable.cs.meta
TrackAsset.cs
TrackAsset.cs.meta
Unity.Timeline.asmdef
Unity.Timeline.asmdef.meta
Utilities.meta
Samples~
.signature
CHANGELOG.md
CHANGELOG.md.meta
DocCodeExamples.meta
Editor.meta
LICENSE.md
LICENSE.md.meta
README.md
README.md.meta
Runtime.meta
ValidationExceptions.json
ValidationExceptions.json.meta
package.json
package.json.meta
com.unity.ugui@1.0.0
com.unity.visualscripting@1.9.4
PackageManager
PlayModeViewStates
PlayerDataCache
ScriptAssemblies
Search
ShaderCache
SplashScreenCache
StateCache
UIElements
AnnotationManager
ArtifactDB
ArtifactDB-lock
BuildPlayer.prefs
BuildSettings.asset
EditorOnlyScriptingSettings.json
EditorOnlyVirtualTextureState.json
EditorSnapSettings.asset
EditorUserBuildSettings.asset
InspectorExpandedItems.asset
LastBuild.buildreport
LastSceneManagerSetup.txt
LibraryFormatVersion.txt
MonoManager.asset
SceneVisibilityState.asset
ScriptMapper
ShaderCache.db
SourceAssetDB
SourceAssetDB-lock
SpriteAtlasDatabase.asset
Style.catalog
expandedItems
ilpp.pid
Logs
Packages
ProjectSettings
UserSettings
obj
.vsconfig
Assembly-CSharp.Player.csproj
Assembly-CSharp.csproj
TM1.sln
Unity.CollabProxy.Editor.csproj
Unity.EditorCoroutines.Editor.csproj
Unity.Performance.Profile-Analyzer.Editor.csproj
Unity.PlasticSCM.Editor.csproj
Unity.Rider.Editor.csproj
Unity.Settings.Editor.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.csproj
Unity.TestTools.CodeCoverage.Editor.csproj
Unity.TextMeshPro.Editor.csproj
Unity.TextMeshPro.Player.csproj
Unity.TextMeshPro.csproj
Unity.Timeline.Editor.csproj
Unity.Timeline.Player.csproj
Unity.Timeline.csproj
Unity.VSCode.Editor.csproj
Unity.VisualScripting.Core.Editor.csproj
Unity.VisualScripting.Core.Player.csproj
Unity.VisualScripting.Core.csproj
Unity.VisualScripting.Flow.Editor.csproj
Unity.VisualScripting.Flow.Player.csproj
Unity.VisualScripting.Flow.csproj
Unity.VisualScripting.SettingsProvider.Editor.csproj
Unity.VisualScripting.Shared.Editor.csproj
Unity.VisualScripting.State.Editor.csproj
Unity.VisualScripting.State.Player.csproj
Unity.VisualScripting.State.csproj
Unity.VisualStudio.Editor.csproj
UnityEditor.TestRunner.csproj
UnityEditor.UI.csproj
UnityEngine.TestRunner.Player.csproj
UnityEngine.TestRunner.csproj
UnityEngine.UI.Player.csproj
UnityEngine.UI.csproj
77 lines
2.5 KiB
C#
77 lines
2.5 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.Timeline;
|
|
using UnityEngine.Playables;
|
|
|
|
namespace UnityEngine.Timeline
|
|
{
|
|
/// <summary>
|
|
/// Extension methods for TrackAssets
|
|
/// </summary>
|
|
public static class TrackAssetExtensions
|
|
{
|
|
/// <summary>
|
|
/// Gets the GroupTrack this track belongs to.
|
|
/// </summary>
|
|
/// <param name="asset">The track asset to find the group of</param>
|
|
/// <returns>The parent GroupTrack or null if the Track is an override track, or root track.</returns>
|
|
public static GroupTrack GetGroup(this TrackAsset asset)
|
|
{
|
|
if (asset == null)
|
|
return null;
|
|
|
|
return asset.parent as GroupTrack;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Assigns the track to the specified group track.
|
|
/// </summary>
|
|
/// <param name="asset">The track to assign.</param>
|
|
/// <param name="group">The GroupTrack to assign the track to.</param>
|
|
/// <remarks>
|
|
/// Does not support assigning to a group in a different timeline.
|
|
/// </remarks>
|
|
public static void SetGroup(this TrackAsset asset, GroupTrack group)
|
|
{
|
|
const string undoString = "Reparent";
|
|
|
|
if (asset == null || asset == group || asset.parent == group)
|
|
return;
|
|
|
|
if (group != null && asset.timelineAsset != group.timelineAsset)
|
|
throw new InvalidOperationException("Cannot assign to a group in a different timeline");
|
|
|
|
|
|
TimelineUndo.PushUndo(asset, undoString);
|
|
|
|
var timeline = asset.timelineAsset;
|
|
var parentTrack = asset.parent as TrackAsset;
|
|
var parentTimeline = asset.parent as TimelineAsset;
|
|
if (parentTrack != null || parentTimeline != null)
|
|
{
|
|
TimelineUndo.PushUndo(asset.parent, undoString);
|
|
if (parentTimeline != null)
|
|
{
|
|
parentTimeline.RemoveTrack(asset);
|
|
}
|
|
else
|
|
{
|
|
parentTrack.RemoveSubTrack(asset);
|
|
}
|
|
}
|
|
|
|
if (group == null)
|
|
{
|
|
TimelineUndo.PushUndo(timeline, undoString);
|
|
asset.parent = asset.timelineAsset;
|
|
timeline.AddTrackInternal(asset);
|
|
}
|
|
else
|
|
{
|
|
TimelineUndo.PushUndo(group, undoString);
|
|
group.AddChild(asset);
|
|
}
|
|
}
|
|
}
|
|
}
|