2016-08-18 39 views
0

我做了一個門的腳本,它的工作正常,但現在我想添加不同的聲音,當門打開,當它關閉。我在門口添加了一個音頻源並添加了開門聲音。我怎樣才能添加doorClose聲音,並通過腳本進行播放? Audio Source如何添加2個聲音並通過腳本播放?

if (open) { 
    GetComponent<AudioSource>().Play(); 
} else { 
    GetComponent<AudioSource>().Play(); 
} 

回答

0

檢查Audio & Sound Tutorial。以下是示例代碼:

using UnityEngine; 
using System.Collections; 

namespace Completed 
{ 
    public class SoundManager : MonoBehaviour 
    { 
     public AudioSource efxSource;     //Drag a reference to the audio source which will play the sound effects. 
     public AudioSource musicSource;     //Drag a reference to the audio source which will play the music. 
     public static SoundManager instance = null;  //Allows other scripts to call functions from SoundManager.    
     public float lowPitchRange = .95f;    //The lowest a sound effect will be randomly pitched. 
     public float highPitchRange = 1.05f;   //The highest a sound effect will be randomly pitched. 


     void Awake() 
     { 
      //Check if there is already an instance of SoundManager 
      if (instance == null) 
       //if not, set it to this. 
       instance = this; 
      //If instance already exists: 
      else if (instance != this) 
       //Destroy this, this enforces our singleton pattern so there can only be one instance of SoundManager. 
       Destroy (gameObject); 

      //Set SoundManager to DontDestroyOnLoad so that it won't be destroyed when reloading our scene. 
      DontDestroyOnLoad (gameObject); 
     } 


     //Used to play single sound clips. 
     public void PlaySingle(AudioClip clip) 
     { 
      //Set the clip of our efxSource audio source to the clip passed in as a parameter. 
      efxSource.clip = clip; 

      //Play the clip. 
      efxSource.Play(); 
     } 


     //RandomizeSfx chooses randomly between various audio clips and slightly changes their pitch. 
     public void RandomizeSfx (params AudioClip[] clips) 
     { 
      //Generate a random number between 0 and the length of our array of clips passed in. 
      int randomIndex = Random.Range(0, clips.Length); 
0

保持對兩個音頻文件的引用。 然後,

if (open) { 
    GetComponent<AudioSource>().clip = _OpenClip; 
    GetComponent<AudioSource>().Play(); 
} else { 
    GetComponent<AudioSource>().clip = _CloseClip; 
    GetComponent<AudioSource>().Play(); 
}