using UnityEngine;
using UnityEngine.Playables;
[System.Serializable]
public class ActiveGameObjectPlayableBehaviour : PlayableBehaviour
{
    public bool isActive;
    
    public GameObject gameObject;

    public bool isLasting;

    // Called when the owning graph starts playing
    public override void OnGraphStart(Playable playable)
    {
        Debug.Log("OnGraphStart");
    }

    // Called when the owning graph stops playing
    public override void OnGraphStop(Playable playable)
    {
        Debug.Log("OnGraphStop");
    }

    // Called when the state of the playable is set to Play
    public override void OnBehaviourPlay(Playable playable, FrameData info)
    {
       
        Debug.Log("OnBehaviourPlay");
        if (gameObject != null)
        {
            gameObject.SetActive(isActive);
        }
    }

    // Called when the state of the playable is set to Paused
    public override void OnBehaviourPause(Playable playable, FrameData info)
    {
        if (gameObject != null)
        {
            if (!isLasting)
            {
                gameObject.SetActive(!isActive);
            }
        }

        Debug.Log("OnBehaviourPause");
    }

    // Called each frame while the state is set to Play
    public override void PrepareFrame(Playable playable, FrameData info)
    {
        // Debug.Log("PrepareFrame" + info.weight);
    }
}