Unity的VideoPlayer視頻播放結(jié)束觸發(fā)邏輯
前言
我在之前的項目中,有許多項目用到了VideoPlayer視頻播放組件,其中有很多需求都是視頻播放結(jié)束后調(diào)用一個方法,比如說跳轉(zhuǎn)場景、轉(zhuǎn)換視頻等等。我使用的Unity2017的版本都是在Update檢測視頻的幀數(shù),在視頻播放結(jié)束是觸發(fā)方法,但是這種方法貌似在2017以上的版本就不太好使了(我在很多項目中碰到過這種情況),有時候只能用計時器完成,費時費力。今天我在網(wǎng)上找到一個方法,終于解決了這個問題,完成過程如下所示:
步驟
1.項目中導(dǎo)入之前videoPlayer項目,videoPlayer的使用方法我在之前的博客里介紹過,在這里不贅述了,如下圖所示:2.之前的項目中視頻播放結(jié)束邏輯都在PlayMovie方法里,代碼如下所示:
void PlayMovie()
{
//如果videoPlayer沒有對應(yīng)的視頻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.優(yōu)化后播放結(jié)束邏輯不在PlayMovie方法里實現(xiàn),新建ToEndVideo方法,如下所示:
void ToEndVideo()
{
videoPlayer.loopPointReached += EndWithVideoPlay;
}
/// <summary>
/// 播放結(jié)束邏輯
/// </summary>
/// <param name="thisPlay"></param>
void EndWithVideoPlay(VideoPlayer thisPlay)
{
Debug.Log("視頻播放完畢動作!");
StopPlay();
}
4.在Start方法中調(diào)用ToEndVideo方法,如下圖所示:文章來源:http://www.zghlxwxcb.cn/news/detail-521580.html
void Start()
{
BeginString();
ToEndVideo();
}
5.功能完成,測試,發(fā)現(xiàn)已經(jīng)實現(xiàn)了該功能!文章來源地址http://www.zghlxwxcb.cn/news/detail-521580.html
到了這里,關(guān)于Unity的VideoPlayer視頻播放結(jié)束觸發(fā)邏輯的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!