Timelineを使ってみよう(作成中)

2023年6月1日

プロジェクトウィンドウでTimelineを作成します

作成されたTimelineをシーンに追加します

Timelineのインスタンスが作成されます

設定用ウィンドウを開きます

スケールを変更するには

using UnityEngine;
using UnityEngine.Playables;

public class TimelinePlayer : MonoBehaviour
{
    private PlayableDirector director;
    public GameObject controlPanel;

    private void Awake()
    {
        director = GetComponent<PlayableDirector>();
        director.played += Director_Played;
        director.stopped += Director_Stopped;
    }

    private void Director_Stopped(PlayableDirector obj)
    {
        controlPanel.SetActive(true);
    }

    private void Director_Played(PlayableDirector obj)
    {
        controlPanel.SetActive(false);
    }

    public void StartTimeline()
    {
        director.Play();
    }
}

解説

UnityEngine.Playables 名前空間を追加します

using UnityEngine.Playables;

クラス定義の中で、Playable Director とコントロール・パネルへの参照を作成します

private PlayableDirector director;
public GameObject controlPanel;

Awakeの中で、Playable Director の参照を設定し、Director の開始時と停止時に呼び出されるコールバック関数を登録します

director = GetComponent<PlayableDirector>();
director.played += Director_Played;
director.stopped += Director_Stopped;

次の 2 つのステップで定義される Director_Played および Director_Stopped は、戻り値が void 型の関数で、唯一のパラメーターは PlayableDirector 型です。

Director_Played は、Timeline が再生を開始すると、Timeline を開始するために使用される UI パネルを非表示にします

private void Director_Played(PlayableDirector obj)
{
    controlPanel.SetActive(false);
}

Director_Stopped は、Timeline が停止した後に UI パネルを表示します

private void Director_Stopped(PlayableDirector obj)
{
    controlPanel.SetActive(true);
}

最後に、Timeline を開始する関数を定義する準備ができました

public void StartTimeline()
{
    director.Play();
}

参考

Timeline,Unity

Posted by hidepon