声音和视频是3d作品中不可或缺的元素。在unity3d中添加声音和视频元素,并且编写脚本实现声音和视频的控制播放是必要的操作。
1.首先给某个component组件添加Audio Source属性,定义为声音源,并且一般会给主摄像机添加Audio Listener定义为声音的听者。我在做的时候给场景中的一个音响模型添加了Audio Source的属性,并且因为选项为3D sound因此在场景中声音就有了在实际中的远近效果。勾选其中的Play on Awake自动播放之后,运行的时候就可以自动播放声音效果;
2.编写脚本进行声音片段的播放,暂停,以及所播放的声音片段的选择的控制,所写的简单脚本如下:
#pragma strict
//引入声音源 @script RequireComponent(AudioSource) //定义变量指向另一个声音片段资源 var SecondSong:AudioClip; function Start () { audio.loop = true; } function OnGUI() {//设置点击GUI上的各个按钮所对应的事件 if(GUILayout.Button("Play/Continue")) { if(!audio.isPlaying) { audio.Play(); } } if(GUILayout.Button("Pause")) { audio.Pause(); } if(GUILayout.Button("stop")) { audio.Stop(); } if(GUILayout.Button("Play another song")) { audio.Stop(); audio.PlayOneShot(SecondSong); } }
在声音源的选项中定义脚本中变量所对应的声音片段:
运行后的效果,可以用鼠标点击左上角GUI菜单的按钮来控制声音资源的播放,暂停,切换等等:
3.对于视频的操作和声音差不多,不过视频操作的时候需要PRO版本,官网下的只要破解一下就可以了。 将视频资源拖拽到带有render属性的对象上面,我创建了一个plane用来播放视频片段
然后编写脚本控制初始状态,设置为初始即播放,简单的脚本如下:
using UnityEngine; using System.Collections; public class AudioPlay : MonoBehaviour { public MovieTexture audioplay; // Use this for initialization void Start () { renderer.material.mainTexture = audioplay; audioplay.loop = true; audioplay.Play (); } // Update is called once per frame void Update () { } }运行一下即可看见效果
至此实现了视频和声音资源的播放以及脚本的控制
原文:http://blog.csdn.net/minedayu/article/details/18926427