利用Unity 自带的Timeline 可轻松实现场景的巡检漫游效果,
基本使用参考以下链接:
Unity中的Timeline
Unity学习笔记——TimeLine的简单使用方法(一)
这里主要介绍如何通过滑动条控制播放的进度,效果图附上。
话不多说,直接上干货!
public GameObject TimeLine_ZCF; public Slider TimeLine_ZXS_Slider;void Start(){//给滑动条添加方法,值改变时触发,更改TimeLine的time值TimeLine_ZXS_Slider.onValueChanged.AddListener((float value) => { TimeLine_ZXS.GetComponent<PlayableDirector>().time = value * TimeLine_ZXS.GetComponent<PlayableDirector>().duration; });}//控制漫游启停void ConTrolManYou(bool isStart){if(isStart){TimeLine.GetComponent<PlayableDirector>().Play();InvokeRepeating("DelayedExeCuteSlider", 0f, 1f);}else{TimeLine.GetComponent<PlayableDirector>().Stop();TimeLine_ZXS_Slider.value =0;CancelInvoke("DelayedExeCuteSlider");}}//将TimeLine运行的时间,反馈给滑动条//time 是运行的时间,duration是总时间,slider的值范围:0-1,所以用time /duration即可//这个方法可以放在Update里面,当然,考虑到性能,只有在漫游巡检时在赋值即可,通过携程或者Invoke重复调用private void DelayedExeCuteSlider(){TimeLine_ZXS_Slider.value = (float)(TimeLine_ZXS.GetComponent<PlayableDirector>().time / TimeLine_ZXS.GetComponent<PlayableDirector>().duration);}
这里是井队,天高任鸟飞,海阔凭鱼跃,点个关注不迷路,我们下期再见。