一般游戲的開頭視頻是每次打開游戲都播,CG一般是第一次運行游戲播放,如果開始CG播放完之后的開始界面也是視頻,一般是回圈播放(可能要用到三個視頻),
- 需要準備開始視頻(公司logo或者游戲logo視頻),CG視頻,兩個及兩個以上的視頻,
- 有幾個視頻就要準備幾個RenderTexture(在project視圖中創建,我的是Assets/Res/RenderTextures)
- 在canvas下創建一個空物體Video,添加以下代碼,在Video下創建一個空物體VideoPlayer,添加組件VideoPlayer,把步驟1要播放的視頻拖給Video Clip ,把步驟2的Render Texture拖給Target Texture;
- 在canvas下再創建一個RawImage,把步驟2對應的Render Texture拖給Texture,然后點擊播放即可
代碼:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
/// <summary>
/// 視頻播放
/// </summary>
public class VideoPanelCtrl : MonoBehaviour
{
/// <summary>
/// 視頻播放器
/// </summary>
public VideoPlayer VPlayer;
/// <summary>
/// 承載視頻的媒介
/// </summary>
public RawImage rawImg;
/// <summary>
/// 下一個要播放的視頻
/// </summary>
public VideoPanelCtrl nextVPlayer;
/// <summary>
/// 是否要回圈播放,加載背景需要回圈,而且回圈播放不關閉
/// </summary>
public bool isLoop;
/// <summary>
/// 是否是開始CG影片
/// </summary>
public bool isStartCG;
private void Awake()
{
rawImg.gameObject.SetActive(false);
VPlayer.errorReceived += ErrorReceived;
VPlayer.loopPointReached += LoopPointReached;
VPlayer.isLooping = isLoop;
//影片回圈,是游戲開始界面,設定下次打開游戲不播放CG
if(isLoop)
PlayerPrefs.SetInt("Game", 1);
}
private void Start()
{
//如果達到某些條件就不播放,比如CG影片只在第一次打開游戲時播放
if(PlayerPrefs.GetInt("Game", 0) == 1 && isStartCG)
{
Stop();
}
else
{
VPlayer.SetDirectAudioVolume(0, 1);
VPlayer.Play();
rawImg.gameObject.SetActive(true);
}
}
private void Update()
{
//點擊空格鍵或者ESC鍵停止播放
if(Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Space))
{
if(!isLoop)
Stop();
}
}
private void Stop()
{
if(nextVPlayer)
{
nextVPlayer.gameObject.SetActive(true);
//先顯示下一個視頻,1秒鐘后再消失本視頻(時間可以適當調整)
Invoke("StopPlay", 1);
}
else
{
VPlayer.Stop();
Destroy(gameObject);
}
}
private void StopPlay()
{
CancelInvoke("StopPlay");
VPlayer.Stop();
Destroy(gameObject);
}
/// <summary>
/// 回圈播放
/// </summary>
private void LoopPointReached(VideoPlayer vp)
{
if(!isLoop)
Stop();
}
/// <summary>
/// 播放錯誤
/// </summary>
private void ErrorReceived(VideoPlayer vp, string err)
{
if(!isLoop)
Stop();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342340.html
標籤:其他
上一篇:圖形 4.3 實時陰影簡介
