---
tags:
    - "Timeline"
    - "Cutscene"
    - "Cinematic"
    - "Sequence"
    - "Playing"
    - "Paused"
---

# Playable Director State

[Timeline](../index.md) / [Playable Director](index.md) / **Playable Director State**

## Description

Returns true if the Playable Director is in the chosen play state

## Parameters

| Name | Description |
| :--- | :---------- |
| Playable Director | The Playable Director component checked |
| State | Playing while the Playable Director runs, Paused while it is paused or stopped |

## Code

```cs
using System;
using UnityEngine;
using UnityEngine.Playables;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Title("Playable Director State")]
    [Category("Timeline/Playable Director/State")]
    [Description("Returns true if the Playable Director is in the chosen play state")]

    [Image(typeof(IconDirector), ColorTheme.Type.Teal)]
    [Keywords("Timeline", "Cutscene", "Cinematic", "Sequence", "Playing", "Paused")]

    [Parameter("Playable Director", "The Playable Director component checked")]
    [Parameter("State", "Playing while the Playable Director runs, Paused while it is paused or stopped")]

    [Serializable]
    public class ConditionPlayableDirectorState : Condition
    {
        [SerializeField] private GetGameObject m_PlayableDirector = new GetGameObject(
            new GenTypeGameObject_PlayableDirector()
        );

        [SerializeField] private PlayState m_State = PlayState.Playing;

        protected override string GetTitle(GameObject source)
        {
            string member = TextUtils.ThemeAsKeyword("State");
            return $"{this.m_PlayableDirector} {member} is {this.m_State}";
        }

        protected override bool Run(Args args)
        {
            PlayableDirector director = this.m_PlayableDirector.Get<PlayableDirector>(args);
            return director != null && director.state == this.m_State;
        }
    }
}
```

