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

[ExecuteInEditMode]
public class TimelineSpeedController : MonoBehaviour
{
    public PlayableDirector director;
    [Range(0, 1)]
    public float speed = 1.0f;

    private void Start()
    {
        speed = 1.0f;
    }

    private void Update()
    {
        ControllSpeed();
    }

    public void ControllSpeed()
    {
        director.played += SetSpeed;
        SetSpeed(director); // in case play on awake is set
    }

    void SetSpeed(PlayableDirector director)
    {
        if (director != null && director.playableGraph.IsValid())
        {
            director.playableGraph.GetRootPlayable(0).SetSpeed(speed);
        }
    }

    void OnValidate()
    {
        SetSpeed(GetComponent<PlayableDirector>());
    }
}
