本文主要是介绍Unity的VideoPlayer视频播放结束触发逻辑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Unity的VideoPlayer视频播放结束触发逻辑
前言
我在之前的项目中,有许多项目用到了VideoPlayer视频播放组件,其中有很多需求都是视频播放结束后调用一个方法,比如说跳转场景、转换视频等等。我使用的Unity2017的版本都是在Update检测视频的帧数,在视频播放结束是触发方法,但是这种方法貌似在2017以上的版本就不太好使了(我在很多项目中碰到过这种情况),有时候只能用计时器完成,费时费力。今天我在网上找到一个方法,终于解决了这个问题,完成过程如下所示:
步骤
1.项目中导入之前videoPlayer项目,videoPlayer的使用方法我在之前的博客里介绍过,在这里不赘述了,如下图所示:
2.之前的项目中视频播放结束逻辑都在PlayMovie方法里,代码如下所示:
void PlayMovie(){//如果videoPlayer没有对应的视频texture,则返回if (videoPlayer.texture == null){return;}//把VideoPlay的视频渲染到UGUI的RawImage上rawImage.texture = videoPlayer.texture;if (isPlay){if ( videoPlayer.frame == (long)videoPlayer.frameCount){//Debug.Log("视频播放完毕动作!");//StopPlay();}}}
3.优化后播放结束逻辑不在PlayMovie方法里实现,新建ToEndVideo方法,如下所示:
void ToEndVideo(){videoPlayer.loopPointReached += EndWithVideoPlay;}/// <summary>/// 播放结束逻辑/// </summary>/// <param name="thisPlay"></param>void EndWithVideoPlay(VideoPlayer thisPlay){Debug.Log("视频播放完毕动作!");StopPlay();}
4.在Start方法中调用ToEndVideo方法,如下图所示:
void Start(){BeginString();ToEndVideo();}
5.功能完成,测试,发现已经实现了该功能!
这篇关于Unity的VideoPlayer视频播放结束触发逻辑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!