如何添加2个声音并通过脚本播放?

时间:2016-08-18 12:56:01

标签: audio unity3d

我做了一个门脚本,它工作正常,但现在我想在门打开和关闭时添加不同的声音。我在门口添加了一个音频源并添加了门打开声音。如何添加一个doorClose声音并通过脚本播放? Audio Source

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

保持对两个音频文件的引用。 然后,

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