Unity3D 多种播放⾳效的⽅式
AudioListener 组件默认绑定在主摄像机上,这个组件的功能相当于⽿朵,⽤来听声⾳的。
1.背景⾳乐
选中⾳乐⽂件,建议不勾选 3D Sound  选项。
在Main Camera 下创建⼀个空物体,添加 AudioSound  组件, AudioClip  选择要播放的⾳乐。
Loop  必须勾选,循环播放。
勾选 PlayOnAwake  ,场景⼀进来就开始播放,如果不勾选个合适时机Play()。
2.NGUI 的UIPlaySound
在摄像机直接添加个 AudioSource  组件,这个组件不挂任何 AudioClip  。( UIPlaySound  将在这个组件上播放⾳效,在这⾥调整 Volume  能控制所有UIPlaySound  的⾳量⼤⼩。 UIPlaySound  的 Volume  属性只控制⾃⼰的⾳量,最后的⾳量是这两个⾳量值相乘。)
unity3d animation3.碰撞触发的⾳效
4.Animation 动作回调的⾳效
[csharp]
public  AudioClip AC ;  OnCollisionEnter(Collision collision)  //或者OnTriggerEnter(Collider collider)  {      //被撞得物体原点发出声⾳(第⼆个参数⽤来设置发出声⾳的世界坐标,不要离AudioListener 太远)      AudioSource.PlayClipAtPoint(AC, transform.localPosition);  }
[csharp]
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();      }  }
48.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。