您的位置:首页 > 产品设计 > UI/UE

NGUI之视频接入与播放控制

2015-07-05 17:59 573 查看
今天在做项目时,需要给游戏加待机视频,我用的是NGUI,在网上搜了一下,都是讲的unity接视频,对于ngui没有可参照的方法,于是自己就想了一个方法,效果很好,在此就分享给大家。

首先用NGUI制作游戏场景,场景如下:

其中PLAY、PAUSE、STOP三个按钮分别控制视频的播放、暂停、停止




Project视图如下:

PlayVideo为控制视频播放的脚本,绑定在Camera上,文件夹Videos下的NGUI 3.0.7video为一个讲解NGUI的视频资源





Hierarchy视图如下:





其中PlayBtn按钮控制视频播放,PauseBtn按钮控制视频暂停,StopBtn按钮控制视频停止,Video为NGUI的Texture对象,下面主要讲该对象,选择Video,其Inspector面板如下所示:





如上图所示,将Projcetor面板下的Videos文件夹中的NGUI 3.0.7video视频资源拖入上图的1区域,在2区域设定视频的播放窗口和NGUI摄像机的窗口同样大小,下面就是脚本控制了,直接上代码:

<strong><span style="font-family:KaiTi_GB2312;font-size:14px;">using UnityEngine;
using System.Collections;

public class PlayVideo : MonoBehaviour {

MovieTexture videoSource;//视频资源
GameObject videoBind;//视频对象

void Start () {
videoBind = GameObject.Find("Video");
videoSource =  (MovieTexture)videoBind.GetComponent<UITexture>().mainTexture;//将视频对象的mainTexture赋予视频资源
videoSource.loop = true;//设置视频为循环播放
}

/// <summary>
/// 播放按钮回调函数
/// </summary>
public void PressPlayButtonDownCallback()
{
if (!videoSource.isPlaying)
{
videoSource.Play();
}
}
/// <summary>
/// 暂停按钮回调函数
/// </summary>
public void PressPauseButtonDownCallback()
{
if (videoSource.isPlaying)
{
videoSource.Pause();
}
}
/// <summary>
/// 停止按钮回调函数
/// </summary>
public void PressStopButtonDownCallback()
{
if (videoSource.isPlaying)
{
videoSource.Stop();
}
}
}</span></strong>

如上所示,就是这么简单,三个回调函数分别和按钮PlayBtn、PauseBtn、StopBtn相连接即可

点击运行就可以看到视频播放效果了!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: