如何使用音频文件进行播放?

1.首先我们需要添加一个“音频监听器”(Audio Listenter)在我们的主相机上,一般被默认已经添加好了

2.在我们想要发声的物体上添加“声音组件”(Audio Source)

unity audiosource播放结束回调 unity播放声音的方法_Source

如果你想让这段音频在你一激活该对象时播放你可以将音频直接拖入到里面来像这样

unity audiosource播放结束回调 unity播放声音的方法_3d_02

 在此对象创建或是激活时就会发出声音,请注意勾选“唤醒时播放”

 (请注意本文是在3d模式下使用,它听起来与2d有些许不同,3d它更加追求立体声,尽管在2d中也会有远近效果

你可以通过调整unity的“音频源”来获得不同的效果,或是空间位置关系来获得声音远近效果

参见:

Unity - Manual: Audio Source音频源https://docs.unity3d.com/Manual/class-AudioSource.html

一般情况下这里默认打开“唤醒时播放”(Play On Awake)

在你播放一些短小的声音希望循环时,也可勾上“循环”(Loop)

如果你想要不停地播放声音,建议你可以把你需要的声音直接挂在“相机”(Main Camera)上,这会一直播放

如何用代码控制?

比如当我按下某个键时它会进行播放

1.首先还是在你想要发生并且要挂载脚本的对象上创建“声音组件”(Audio Source)

并把音乐添加进去

勾掉“唤醒时播放”

unity audiosource播放结束回调 unity播放声音的方法_开发语言_03

 

2.创建脚本,代码如下:

using UnityEngine;//这个组件里面已经包含
using UnityEngine.Audio;//不一定必须声明(二选一即可)

public class Audio : MonoBehaviour
{
    public AudioClip clip;//指定播放的声音
    public AudioSource source;//定义该AudioSource才能使用
    // Start is called before the first frame update
    void Start()
    {
        source = GetComponent<AudioSource>();//获取当前音频组件
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            source.Play();//调用此音频文件播放
        }
    }

{

1.source.Play();//播放(通常为背景音效)

2.source.PlayOnShot(clip,3f)//播放指定对象,3秒{据说时播放2d用的这个目前暂无测试}

clip需要指定音频,并取消source组件中的音频文件

unity audiosource播放结束回调 unity播放声音的方法_开发语言_04

 3.source.PlayDelayed(3f);//延迟3秒执行播放

设置是这样的

unity audiosource播放结束回调 unity播放声音的方法_2d_05

4.  source.PlayScheduled(double );在 AudioSettings.dspTime 读取的绝对时间轴上的特定时间播放 clip

参见:

AudioSource-PlayScheduled - Unity 脚本 APIhttps://docs.unity3d.com/cn/2020.2/ScriptReference/AudioSource.PlayScheduled.html5.source。Stop();//停止播放

6. source.Pause();//暂停播放

}