C# 动态创建TimeLine

//创建Timeline导演
PlayableDirector playableDirector;
//Timeline资产
TimelineAsset timelineAsset;

//获取物体身上的导演
playableDirector=GetComponent<PlayableDirector>()

//创建Timeline资产
timelineAsset=ScriptableObject.CreateInstance<TimelineAsset>();

playableDirector.playableAsset=timelineAsset;
playableDirector.playOnAwake = false;

//动态创建动画轨道 

//定义动画
public AnimationClip animation;
//定义人物身上的动画骨骼
public Animator playerani;

//创建动画轨道并绑定人物
AnimationTrack ani= timelineAsset.CreateTrack<AnimationTrack>();
playableDirector.SetGenericBinding(ani, playerani);

//创建动画轨道上的动画资产
TimelineClip timelineClip = ani.CreateClip<AnimationPlayableAsset>();
//转型为动画资产
AnimationPlayableAsset animAsset= timelineClip.asset as AnimationPlayableAsset;
//循环播放
animAsset.loop = AnimationPlayableAsset.LoopMode.On;
//赋值
animAsset.clip = animation;
//设定时间
timelineClip.start = 0;
timelineClip.duration = 10;

 //创建control轨道

publicGameObject talk

//control轨道

ControlTrack controlTrack =timelineAsset.CreateTrack<ControlTrack>();
TimelineClip timelineClip =controlTrack.CreateClip<ControlPlayableAsset>();

timelineClip.sourceGameObject.exposedName="Talk";//改变轨道名字
timelineClip.sourceGameObject.defaultValue=talk;//给轨道赋值

timelineClip.start=2;//开始时间
timelineClip.duration=2;//持续时间

//创建信号量轨道 

//创建信号量轨道
SignalTrack signalTrack =timelineAsset.CreateTrack<SignalTrack>();

SignalReceiver signalReceiver =gameObject.AddComponent<SignalReceiver>();
//绑定轨道
playableDirector.SetGenericBinding(signalTrack,gameObject);
//创建信号量
SignalAsset signalAsset =new SignalAsset();

signalAsset =" ";
触发时间
SignalEmitter signalEmitter=signalTrack .CreateMarker<SignalEmitter>(2);

signalEmitter.asset=signalAsset;
//绑定事件
signalReceiver.AddReaction(signalEmitter.asset,new UnityEngine.Events.UnityEvent());

signalReceiver.GetReaction(signalAsset).AddListener(()=>
{
    //想要运行的东西
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值