Timline.time をコントロールした際にAnimationClipが再生されない


Editor上ではタイムラインのヘッダをいじると再生されるのに、スクリプトからTimeline.timeを直接いじってTimeline.Evaluate()をさせた場合に、配置してあるAnimationClipが再生される場合とされない場合があった。

再生するコードはこんな感じ。

PlayableDirector timeline; // Stop状態

float time = 0f;

private void Update() {
    this.time += 0.1f;
    this.timeline.time = this.time;
    this.timeline.Evaluate();
)

動かない方にはAnimationControllerが設定されていて、動く方はAnimatorのControllerがNoneになっていた。

追記) 2019.02.19
その後 UnityQA チームから返信をいただき、Evaluate() ではその後に AnimationController などから値が上書きされてしまうので、DeferredEvaluate() が使えるよと教えてもらった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です