纳金网
标题:
【原创】Unity3d PC IOS平台播放视频的详解(带源码) - Faye Euler
[打印本页]
作者:
faye euler
时间:
2012-11-12 12:47
标题:
【原创】Unity3d PC IOS平台播放视频的详解(带源码) - Faye Euler
本文由Faye個人原創,納金網和Faye共同擁有使用權,未經允許轉載保留追究法律責任權利
今天Faye给大家说说Unity3d播放视频的方法,本次例子涵盖了PC平台,IOS平台的视频播放方法。废话不多数,下面马上开始:
首先说在PC平台下面的方法:
真相图
我们新建一个C# Script,命名为PCPlayVideoOnGUI.CS
下面开始写代码:
首先我们定义MovieTexture类型和AudioCli类型的两个变量MyVideo和VideoMusic
MyVideo用于放置我们的视频,VideoMusic用于放置视频里面的音频。
我这里播放的视频自带音频的,我们首先要获取视频里面的音频
VideoMusic = MyVideo.audioClip;
然后播放视频
MyVideo.Play();
这里Play只需要执行一次,不然会悲剧哦,你想想不断地按DVD机的Play按钮会怎样?你懂的
然后设置视频是否会循环播放,默认是不会循环播放的,播放完就黑屏
MyVideo.loop = ***e;
播放视频的话,挂音频脚本的物体必须有个音源(没有音源的话,怎么发音呢),然后将我们的音频赋给音源audio.clip
gameObject.AddComponent<AudioSource>();
audio.clip = VideoMusic;
audio.Play();
视频显示,我们这里用的是OnGUI方法,把视频当一个图片那样写,搞定!
GUI.DrawTexture(new Rect(100,100,MyVideo.width,MyVideo.height),MyVideo);
完整代码如下:
using UnityEngine;
using System.Collections;
public class PCPlayVideoOnGUI : MonoBehaviour {
public MovieTexture MyVideo;
public AudioClip VideoMusic;
// Use this for initialization
void Start () {
if(MyVideo != null)
{
VideoMusic = MyVideo.audioClip;
}
MyVideo.Play();
MyVideo.loop = ***e;
gameObject.AddComponent<AudioSource>();
audio.clip = VideoMusic;
audio.Play();
}
void OnGUI ()
{
GUI.DrawTexture(new Rect(100,100,MyVideo.width,MyVideo.height),MyVideo);
}
}
播放视频除了用OnGUI,还能当贴图那样用,这个方法,会快一点,而且可以把视频倾斜一定角度播放,好,有图有真相
新建脚本PCPlayVideoOnMaterial.CS
首先我们定义MovieTexture类型和AudioCli类型的两个变量MyVideo和VideoMusic
MyVideo用于放置我们的视频,VideoMusic用于放置视频里面的音频。
由于我们这次是将视频当贴图用,所以我们需要个plane,其实尼玛用神马球,圆柱都行的
GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
然后设置plane的材质
plane.renderer.material = new Material ( Shader.Find ("Self-Illumin/VertexLit"));
经典的来了,将视频赋予给plane的mainTexture
plane.renderer.material.mainTexture = MyVideo;
然后设置plane的角度,大小
plane.transform.localEulerAngles = new Vector3(90,140,0);
plane.transform.localScale = new Vector3(1.5f,1f,1);
下面的跟OnGUI没什么区别了,就不罗嗦
if(MyVideo != null)
{
VideoMusic = MyVideo.audioClip;
}
MyVideo.Play();
MyVideo.loop = ***e;
gameObject.AddComponent<AudioSource>();
audio.clip = VideoMusic;
audio.Play();
完整代码如下:
using UnityEngine;
using System.Collections;
public class PCPlayVideoOnMaterial : MonoBehaviour {
public MovieTexture MyVideo;
public AudioClip VideoMusic;
// Use this for initialization
void Start () {
GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
plane.renderer.material = new Material ( Shader.Find ("Self-Illumin/VertexLit"));
plane.renderer.material.mainTexture = MyVideo;
plane.transform.localEulerAngles = new Vector3(90,140,0);
plane.transform.localScale = new Vector3(1.5f,1f,1);
if(MyVideo != null)
{
VideoMusic = MyVideo.audioClip;
}
MyVideo.Play();
MyVideo.loop = ***e;
gameObject.AddComponent<AudioSource>();
audio.clip = VideoMusic;
audio.Play();
}
}
下面介绍第三种,ios播放方法:
由于IOS上面播放视频,是不能用MovieTexture神马的,如果不用插件的话,只能用ios的自带play播放,如果想在上面层叠神马的,别想太多了。。。
有两种方法,代码不多
iPhoneUtils.PlayMovie("IHSG_smash.ogg",Color.black,iPhoneMovieControlMode.CancelOnTouch);
这是一种旧的方法,新版本unity已经提供了新的API
Handheld.PlayFullScreenMovie("IHSG_smash.ogg",Color.black,FullScreenMovieControlMode.CancelOnInput);
用这类方法加载视频的话,视频必须放在Assets文件的StreamingAssets下,否则找不到视频
PlayVideo - faye euler.rar
2012-11-12 12:47 上传
点击文件名下载附件
0 Bytes, 下载次数: 217
作者:
faye euler
时间:
2012-11-12 13:02
这篇文章上周写的。。。发布了很多次才成功,囧。。。
作者:
艾西格亚
时间:
2012-11-12 16:26
原帖由 faye euler 于 2012-11-12 13:02 发表:
这篇文章上周写的。。。发布了很多次才成功,囧。。。
-----------------------------------------------------
这样啊?听说是上周在调整网站。。
作者:
fgdf#dfg
时间:
2012-11-13 12:55
作者:
比巴卜
时间:
2012-11-20 09:34
赞赞!!!
作者:
Zack
时间:
2012-11-23 11:51
学习了,谢谢!!
作者:
冰点
时间:
2012-11-23 16:06
wed 3d 纳金网
作者:
冰点
时间:
2012-11-23 16:07
wed 3d 纳金网
作者:
may
时间:
2012-11-30 03:08
支持楼主
作者:
look12
时间:
2013-1-7 11:30
学习了,谢谢!!!!!!!!!!
作者:
雪白的肚皮
时间:
2013-1-23 12:31
要的就是这个效果。多谢
作者:
无敌
时间:
2013-1-24 02:26
楼主的教程非常的详细
作者:
狂风大尉
时间:
2013-1-29 17:05
希望更多的朋友分享制作经验
作者:
animan
时间:
2013-2-22 22:38
!~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者:
崇尚现在
时间:
2013-2-23 20:29
很好啊 谢谢了 哈哈
作者:
客马
时间:
2013-2-23 23:00
不知道性能怎么样?下载试试
作者:
hariboot
时间:
2014-6-7 12:55
在IOS和ANDROID上测试过了都不行
作者:
Kadina
时间:
2014-6-7 13:04
支持楼主
欢迎光临 纳金网 (http://old.narkii.com/club/)
Powered by Discuz! X2.5