unity3d中如何添加音效
unity3d中如何添加音效
这里先说明一下,游戏中的任何对象均可以变成声音源,只要为其添加一个Audio source组件就行了。而要在游戏中听到声音就需要有一个游戏对象添加一个Audio listener组件,一般来说这个组件是添加到主摄像机上的。unity3d中的限制,只能有一个游戏对象有audio listener组件,也就是说一个场景中audio listener组件只能出现一次;而audio source可以出现许多次。更通俗一些,就是游戏世界中只能有一个人有耳朵,但是其他对象都可以有嘴巴。
unity3d中如何添加音效
现在为主摄像机添加了一个audio listener组件与audio source组件。
unity3d中如何添加音效
要听到什么样的音效,只需要展开audio source组件,在audio clip(音频剪辑)中加入你喜欢的音效就行了。
unity3d中如何添加音效
然后点击audio clip 右边的小圆圈。
unity3d中如何添加音效
d出选择音频对话框,如果你项目窗口有音效,就可以在里面对话框里面看到,让后点击一下就行了。
unity3d中如何添加音效
运行游戏,你就能听到你的音效了。
1.把声音文件放进工程目录
2.一般在主相机下就带有Audio Source,将Audio Clip选为你导入的文件
其它配置如下图:
以上是最简单的方法,不许编程,如果想深入控制播放声音,就得编写脚本了。
audio.Play()播放默认声音,audio.PlayOneShot(xxx) 播放指定声音(xxx代表你指定的audioClip)
AudioListener组件默认绑定在主摄像机上,这个组件的功能相当于耳朵,用来听声音的。1.背景音乐
选中音乐文件,建议不勾选3D Sound选项。
在Main Camera下创建一个空物体,添加AudioSound组件,AudioClip选择要播放的音乐。
Loop必须勾选,循环播放。
勾选PlayOnAwake,场景一进来就开始播放,如果不勾选找个合适时机Play()。
2.NGUI的UIPlaySound
在摄像机直接添加个AudioSource组件,这个组件不挂任何AudioClip。(UIPlaySound将在这个组件上播放音效,在这里调整Volume能控制所有UIPlaySound的音量大小。UIPlaySound的Volume属性只控制自己的音量,最后的音量是这两个音量值相乘。)
3.碰撞触发的音效
public AudioClip AC;
OnCollisionEnter(Collision collision)
//或者OnTriggerEnter(Collider collider)
{
//被撞得物体原点发出声音(第二个参数用来设置发出声音的世界坐标,不要离AudioListener太远)
AudioSource.PlayClipAtPoint(AC, transform.localPosition)
}
4.Animation动作回调的音效
public class AnimationCallSound : MonoBehaviour
{
//防止同一个动作多次注册回调
public static List<string>isHaveevent = new List<string>()
//调用事件
public float EventTime
//要播放的音效(必须绑定一个AudioSource组件)
public AudioSource AS
void Start ()
{
if (AS == null)
Debug.LogError("没有绑定音效")
AddEvent()
//防止场景内动作相同的物体动作同步
Invoke("PlayAnim",Random.Range(0.1f,5.5f))
}
void PlayAnim()
{
animation.Play()
}
//给Animation动画注册回调事件
void AddEvent()
{
foreach (string name in isHaveevent)
{
if (animation.clip.name == name)
return
}
AnimationEvent auidoEvent = new AnimationEvent()
auidoEvent.time = EventTime
auidoEvent.functionName = "PlayAudio"
animation.clip.AddEvent(auidoEvent)
isHaveevent.Add(animation.clip.name)
Debug.Log("add " + animation.clip.name + " Event!")
}
public void PlayAudio()
{
AS.Play()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)