本文由 @EGWriket出品,转载请注明出处。
http://blog.csdn.net/egwriket
环境
软件:untiy5.0.2f1
插件:NGUI3.6.7
前提
untiy只能播放后缀名位.ogv格式的视频,网上说直接拖过去的都不是个人版的,对于个人版的我推荐先在外面把格式转了,详情请参考@竹芽萌生前辈的Unity学习笔记14——导入视频格式问题(QuickTime player)。
步骤
1.UI及音频放置
1.UI
需要一个放置视频的控件,就是Texture,NGUI→Create→Texture
还有点击按钮播放视频,直接从Prefab Toolbar拖一个按钮出来就好了
2.把视频放在Project面板中的Resources文件夹(必须叫这个,没有就新建,因为要用Resources.Load方法加载)
2.代码及绑定
using UnityEngine;
using System.Collections;
public class PopupListManager : MonoBehaviour {
//放图片的或者视频的
public UITexture texture;
//音频
public AudioSource audioSound;
//视频资源
public MovieTexture videoSource;
//路径
string BirdFilePath = "Evaluation/swallow/Audio/xxx(视频文件名,无后缀)";
public void start()
{
texture.mainTexture = Resources.Load<Texture>(BirdFilePath);
}
public void PlayVideo()
{
videoSource = (MovieTexture)texture.mainTexture;//将视频对象的mainTexture赋予视频资源
audioSound.clip = (AudioClip)Resources.Load(BirdFilePath, typeof(AudioClip));//调用Resources方法加载AudioClip资源
videoSource.Play();
audioSound.Play();
}
}
1.Hierarchy面板选中Camera,把代码绑定
2.Inspector面板选择Add Component添加AudioSource组件
3.Inspector面板把AudioSource组件拖入对应的脚本中的未定义的控件变量 AudioSound
4.Hierarchy面板选中Texture,拖入脚本中的未定义的控件变量Texture绑定
5.Hierarchy面板选中Button,选择On click
6把Camera拖进Notify,method选择PopupListManager/PlayVideo
3.运行
1.加载纹理
2点击按钮,播放
4.后记和疑问
我想做成加载视频后直接播放的,于是把代码改成这样
public void start()
{
texture.mainTexture = Resources.Load<Texture>(BirdFilePath);
videoSource = (MovieTexture)texture.mainTexture;//将视频对象的mainTexture赋予视频资源
videoSource.Play();
}
就报这个错误:UnassignedReferenceException: The variable videoSource of PopupListManager has not been assigned.
希望知道的大佬能告诉我。应该已经加载了才对呀……
和别的公司合作,打包了一个untiypackage给我,结果一直报错,MangerLoad什么什么的错误,原来是因为untiy的版本不一样(我的是5.0他的是5.4……),加载场景的方法不一样(MangerLoad和Application.Load一样的效果吧)……就这样浪费一天……唉,心好累,再坚持坚持!