You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Unity场景中所有Timeline并添加至自定义列表?

获取场景中所有Timeline并添加到列表的方法

在Unity中,Timeline的播放由PlayableDirector组件控制,所以要获取场景内所有Timeline,本质就是查找所有PlayableDirector实例,再添加到你的列表中。

基础实现(单个场景)

直接使用FindObjectsOfType方法快速获取场景内的PlayableDirector,示例代码如下:

using UnityEngine;
using UnityEngine.Playables;
using System.Collections.Generic;

public class TimelineHandler : MonoBehaviour
{
    private List<PlayableDirector> timelines = new List<PlayableDirector>();

    void Start()
    {
        // 获取场景中所有激活状态的PlayableDirector
        PlayableDirector[] foundTimelines = FindObjectsOfType<PlayableDirector>();
        
        // 若需要包含未激活的对象,替换为下面这行
        // PlayableDirector[] foundTimelines = FindObjectsOfType<PlayableDirector>(includeInactive: true);
        
        // 将找到的控制器批量添加到列表
        timelines.AddRange(foundTimelines);
        
        // 可选:验证结果
        Debug.Log($"共找到 {timelines.Count} 个Timeline控制器");
    }
}

多场景加载时的处理

如果项目同时加载了多个场景,上面的方法只会获取当前活跃场景的对象,这时需要遍历所有已加载场景来查找:

using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;

public class TimelineHandler : MonoBehaviour
{
    private List<PlayableDirector> timelines = new List<PlayableDirector>();

    void Start()
    {
        timelines.Clear();
        
        // 遍历所有已加载的场景
        for (int i = 0; i < SceneManager.sceneCount; i++)
        {
            Scene targetScene = SceneManager.GetSceneAt(i);
            if (!targetScene.isLoaded) continue;
            
            // 获取当前场景根对象下所有(含子对象)的PlayableDirector
            PlayableDirector[] sceneTimelines = targetScene.GetRootGameObjects()
                .SelectMany(rootGo => rootGo.GetComponentsInChildren<PlayableDirector>(includeInactive: true))
                .ToArray();
            
            timelines.AddRange(sceneTimelines);
        }
        
        Debug.Log($"多场景下共找到 {timelines.Count} 个Timeline控制器");
    }
}

内容的提问来源于stack exchange,提问作者Vacabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:40:44