自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unity3D研究之兩種方式播放游戲視頻

移動(dòng)開(kāi)發(fā) iOS 游戲開(kāi)發(fā)
Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對(duì)應(yīng)的視頻文件拖拽入Project視圖即可,它會(huì)自動(dòng)生成對(duì)應(yīng)的MovieTexture對(duì)象

Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對(duì)應(yīng)的視頻文件拖拽入Project視圖即可,它會(huì)自動(dòng)生成對(duì)應(yīng)的MovieTexture對(duì)象。如下圖所示,MOMO將default_video.mp4拖拽入Project視圖中,如果視頻中含有音頻的話(huà)會(huì)對(duì)應(yīng)生成audio文件,因?yàn)槲业囊曨l沒(méi)有音頻所以沒(méi)有生成 audio文件。接著在Hierarchy視圖中創(chuàng)建一個(gè)Plane對(duì)象視頻將在它之上播放,Directional light世界定向光用于照亮整個(gè)游戲場(chǎng)景,最后Main Camera對(duì)象將直直的照射在Plane對(duì)象。

使用對(duì)象拖拽的形式為Mov Texture對(duì)象賦值,那么在腳本中就能直接使用它了,我們看看Test.cs腳本。

Test.cs

[代碼]c#/cpp/oc代碼:

01 using UnityEngine;
02 using System.Collections;
03  
04 public class Test: MonoBehaviour
05 {
06  
07     //電影紋理
08     public MovieTexture movTexture;
09  
10     void Start()
11     {
12         //設(shè)置當(dāng)前對(duì)象的主紋理為電影紋理
13         renderer.material.mainTexture = movTexture;
14         //設(shè)置電影紋理播放模式為循環(huán)
15         movTexture.loop = true;
16     }
17  
18     void OnGUI()
19     {
20         if(GUILayout.Button("播放/繼續(xù)"))
21         {
22             //播放/繼續(xù)播放視頻
23             if(!movTexture.isPlaying)
24             {
25                 movTexture.Play();
26             }
27  
28         }
29  
30         if(GUILayout.Button("暫停播放"))
31         {
32             //暫停播放
33             movTexture.Pause();
34         }
35  
36         if(GUILayout.Button("停止播放"))
37         {
38             //停止播放
39             movTexture.Stop();
40         }
41     }
42 }

如下圖所示,點(diǎn)擊按鈕后輕松的實(shí)現(xiàn)播放、暫停、停止操作。默認(rèn)視頻大小大家可在編輯器直接縮放Plane對(duì)象平面,而如果需要在游戲運(yùn)行中動(dòng)態(tài)的縮放平面使用方法:

[代碼]c#/cpp/oc代碼:

1 transform.localScale = new Vector(1,1,1);

模型默認(rèn)縮放系數(shù)為1,這里可以調(diào)節(jié)平面X、Y、Z三個(gè)方向的縮放系數(shù),平面的大小會(huì)隨之改變,對(duì)應(yīng)視頻的大小也會(huì)隨之改變。

 第二種播放視頻的方式基于GUI。大家可以把剛剛創(chuàng)建的Plane對(duì)象以及世界定向光刪除,直接將腳本綁定在攝像機(jī)對(duì)象中即可,接著我們簡(jiǎn)單的修改一下剛剛的游戲腳本。

Test.cs

[代碼]c#/cpp/oc代碼:

01 using UnityEngine;
02 using System.Collections;
03  
04 public class Test: MonoBehaviour
05 {
06  
07     //電影紋理
08     public MovieTexture movTexture;
09  
10     void Start()
11     {
12         //設(shè)置電影紋理播放模式為循環(huán)
13         movTexture.loop = true;
14     }
15  
16     void OnGUI()
17     {
18         //繪制電影紋理
19         GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill); 
20  
21         if(GUILayout.Button("播放/繼續(xù)"))
22         {
23             //播放/繼續(xù)播放視頻
24             if(!movTexture.isPlaying)
25             {
26                 movTexture.Play();
27             }
28  
29         }
30  
31         if(GUILayout.Button("暫停播放"))
32         {
33             //暫停播放
34             movTexture.Pause();
35         }
36  
37         if(GUILayout.Button("停止播放"))
38         {
39             //停止播放
40             movTexture.Stop();
41         }
42     }
43  
44 }

在 GUI中播放視頻的原理是直接通過(guò)GUI調(diào)用DrawTexture方法,這里和繪制貼圖很想了吧嘿嘿~ 目前播放視頻的大小是屏幕的寬高,如果想動(dòng)態(tài)的修改視頻的寬或高直接修改new Rect() 視頻顯示區(qū)域即可,如下圖所示,視頻已經(jīng)滿(mǎn)滿(mǎn)的填充在整個(gè)GUI中啦。怎么樣Unity中播放視頻簡(jiǎn)單吧? 哇咔咔~

責(zé)任編輯:冰凝兒
相關(guān)推薦

2012-12-24 09:11:58

iOSUnity3D

2012-12-24 09:04:04

iOSUnity3D

2012-12-24 09:13:23

iOSUnity3D

2012-12-24 08:46:50

iOSUnity3D

2012-12-24 09:20:48

AndoidUnity3D

2012-12-24 09:00:31

iOSUnity3D

2012-12-24 08:48:25

iOSUnity3D

2012-12-24 09:09:27

AndoidUnity3D

2012-12-24 08:57:35

iOSUnity3D

2012-12-24 09:01:41

iOSUnity3D

2012-12-24 08:40:12

2012-12-24 08:50:21

iOSUnity3D

2013-04-25 09:56:24

unity3D手機(jī)游戲引擎

2012-12-24 09:15:57

iOSUnity3D

2012-12-24 08:52:44

iOSUnity3D

2013-04-25 10:03:07

unity3D手機(jī)游戲引擎

2012-12-24 09:08:14

iOSUnity3D

2012-12-24 09:19:31

iOSUnity3D

2012-12-24 09:55:15

iOSUnity3D

2012-12-24 08:51:23

iOSUnity3D
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)