未通过脚本引用 Unity 时间轴组件

Unity Timeline Component Not being Referenced through Scripting

我按照教程在 Unity Timeline 中创建了一个文本自定义轨道。我想通过脚本将轨道的键绑定到带有 TextMeshProUGUI 的字幕游戏对象。基本上,我使用以下方法:

playableDirector.SetGenericBinding(track, subtitle);

这是时间轴上的结果:

这是时间轴中的结果,如果我只拖动同一个对象:

组件没有出现在第一张图片中,为什么?

这是我在手动引用后做的另一个测试:

    var subtitle = playableDirector.GetGenericBinding(track);
    playableDirector.ClearGenericBinding(track);
    playableDirector.SetGenericBinding(track, subtitle);
    Debug.Log(subtitle.GetType());

我没有将 TextMeshProUGUI 组件直接输入到方法中,因为我在脚本编辑器中遇到错误。但是在阅读之后,组件被认为是对象,没有理由不工作,所以我 运行 脚本并且即使有一条红线也能工作。我不知道为什么会这样,但这是解决方案:

    var subtitle = Subtitle.subtitle; // I referenced the component and made it static
    playableDirector = GetComponent<PlayableDirector>();
    timeline = playableDirector.playableAsset as TimelineAsset;
    good = timeline.GetRootTrack(1);
    bad = timeline.GetRootTrack(2);
    var goodTracks = good.GetChildTracks() as List<TrackAsset>;
    var badTracks = bad.GetChildTracks() as List<TrackAsset>;
    playableDirector.SetGenericBinding(goodTracks[0], subtitle);
    playableDirector.SetGenericBinding(badTracks[0], subtitle);