在我们使用TimeLine过程中,也会希望通过TimeLine在某一时刻运行脚本方法。
注意:
1、添加 PlayableTrack 轨道
TimeLine点击 “+” 添加 PlayableTrack 轨道
2、将以下代码添加到 PlayableTrack 轨道
通过继承了 BasicPlayableBehaviour 的脚本,我们根据它的调用,便能实现TimeLine控制其他脚本,也能直接控制物体。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class Skode_PlayableTrack : BasicPlayableBehaviour
{
public GameObject obj;
public override void OnGraphStart(Playable playable)
{
//该调用在TimeLine开始播放时执行,即使时间轴没进入该代码控制的区域
Debug.Log("Graph start");
}
public override void OnGraphStop(Playable playable)
{
//该调用在TimeLine暂停时执行,即使时间轴没进入该代码控制的区域
Debug.Log("Graph stop");
}
public override void PrepareFrame(Playable playable, FrameData info)
{
//当时间轴在该轨道片段时,便一直执行。
Debug.Log("1");
}
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
//当时间轴在该轨道片段时,便一直执行。
Debug.Log("2");
}
public override void OnBehaviourPlay(Playable playable, FrameData info)
{
//该调用在TimeLine开始播放时执行,只有时间轴进入该代码控制的区域时(在区域中暂停、进入该区域那一刻),才执行
Debug.Log("Play State Playing");
GameObject.Find("Mori").transform.GetComponent<testtt>().skode_hi();
}
public override void OnBehaviourPause(Playable playable, FrameData info)
{
//该调用在TimeLine暂停时执行,只有时间轴进入该代码控制的区域时(在区域中暂停、走出该区域那一刻),才执行
Debug.Log("Play State Paused");
}
}
3、Enjoy~
一起成长,
我是SKODE。
大家还有什么问题,欢迎在下方留言!