Unity3D-利⽤Playable和Timeline实现对话框
因为⾃⼰想做⼀个甜品级的galgame,上学期曾经⽤java写过⼀个json的对话流程配置⼯具,但是gui实在是太难写了,⽽且写出来的对话树有bug,所以也就作罢了。
偶然看到unity的timeline⼯具,感觉可以使⽤它做出效率⽐较⾼的对啊流程配置,并且不只是对话,连⼈物的动画,⾳乐等都可以很好的显⽰出来。
这⼏天了解了⼀下timeline中的playablebehaviour和playableAsset,算是初步认识了,并写了⼀个⼩DEMO,由于⽹上的关于这⽅⾯的教程并不是很多,所以这篇⽂章也算留个念。
⾸先要明确playableAsset是在timeline界⾯中显⽰的长条,⽽playableBehaviour则是对应的⾏为⽅式。
unity 教程
也就是说,编辑的时候是使⽤的asset,播放的时候是behaviour。
将代码拖⼊timeline中,会在asset的CreatePlayable⽅法中创建并返回⼀个被包装的behaviour,在这个⽅法⾥,可以进⾏behaviour内引⽤的初始化。
注意,asset内public的字段会显⽰在inspector中,引⽤必须使⽤ExposedReference。
在按下播放按钮后,就会开始执⾏behaviour中的逻辑,但是behaviour中的⽅法调⽤很混乱:
在timeline按下播放时,会调⽤全部behaviour的pause⽅法,之后再调⽤排在最前⾯的asset对应behaviour的play⽅法。当出现两条轨道的asset存在相连的连续播放时,前⼀条asset播放完后,会调⽤其对应behaviour的pause(没错,调⽤的就是pause),再调⽤后⼀条的pause和play。
所以我⾃⼰写了⼀个简单的状态机,把playableBehaviour⼜封装了Init,awake,start,update,pause的⽅法,更加直观。
这个DEMO我上传到了百度云上,有兴趣的可以结合前⾯的,学习⼀下。
提取码:hini

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。