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方法,如下图所示:文章来源:https://www.toymoban.com/news/detail-521580.html
void Start()
{
BeginString();
ToEndVideo();
}
5.功能完成,测试,发现已经实现了该功能!文章来源地址https://www.toymoban.com/news/detail-521580.html
到了这里,关于Unity的VideoPlayer视频播放结束触发逻辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!