【Unity】Audio Source组件——用代码动态控制音效的播放、暂停

1.代码控制播放、暂停、停止

给游戏物体添加Audio Source组件
把音频文件拖入Audio Source组件的AudioCilp中
在这里插入图片描述
创建一个脚本并挂载

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
        //1.播放
        //  按下P键播放
        if (Input.GetKeyDown(KeyCode.P))
        {
            audioSource.Play();

            //补充:延迟播放(参数1 延迟几秒)
            //audioSource.PlayDelayed(3);
        }

        //2.暂停
        //  按下空格暂停播放
        if (Input.GetKeyDown(KeyCode.Space))
        {
            audioSource.Pause();

            //补充:停止暂停,和暂停后再Play效果一样
            //audioSource.UnPause();
        }

        //3.停止播放
        //  按S键停止播放
        if (Input.GetKeyDown(KeyCode.S))
        {
            audioSource.Stop();
        }
    }
}

2.如何检测音效播放完毕

如果我们希望音乐播放完毕后 做一些事情
就需要检测音乐是否播放完毕

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
        //使用.isPlaying来检测(返回值是bool)
        if (audioSource.isPlaying)
        {
            print("播放中");
        }
        else
        {
            print("播放结束了");
        }
    }
}

3.如何动态控制音效播放

方式一:直接在要播放音乐的对象上挂载脚本 来控制播放
1.在对象身上的脚本声明一个AudioSource类型的变量,
2.再通过.GetComponent获取挂载的AudioSource音效源脚本
3.控制此音效源脚本,实现动态控制播放
上面的知识点一就是用的这种方法

方式二:实例化挂载了音效源脚本的对象
(此方式用的较少,因为还要管理音效预制体的销毁)
1.把要播放的音效制作成预制体 且 勾选Play On Awake参数
在这里插入图片描述
2.给场景中一个对象挂载脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    //外部拖入音效预制体
    public GameObject obj;

    void Start()
    {
        //实例化外部拖入的音效预制体
        GameObject.Instantiate(obj);
    }
}

4.如此以来 只要这个预制体一被实例化,就会立刻播放预制体音效
在这里插入图片描述
方式三:用一个AudioSource来控制播放不同的音效
AudioSource组件的AudioClip参数是可以通过代码编辑的
在这里插入图片描述
并且 还可以声明AudioClip类型的变量,从而从面板拖入音效源:
在这里插入图片描述
面板拖入拖入:
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    //从外部面板拖入的音频
    public AudioClip clip;

    void Start()
    {
        //获取一个AudioSource组件
        //  获取了自己挂载的对象的AudioSource组件
        AudioSource audio = this.gameObject.GetComponent<AudioSource>();
        //让获取到的这个AudioSource组件的AudioClip参数 = 我从外部拖入的音频文件
        audio.clip = clip;
        //播放
        audio.Play();
    }
}
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: UnityAudio 组件命令有以下几种: 1. Play: 播放音频 2. Pause: 暂停音频 3. UnPause: 取消暂停音频 4. Stop: 停止播放音频 5. SetScheduledStartTime: 设置音频开始播放的时间 6. SetScheduledEndTime: 设置音频结束播放的时间 7. SetLoop: 设置音频是否循环播放 8. SetVolume: 设置音频的音量 9. SetPitch: 设置音频的音调 10. SetSpatialBlend: 设置音频的空间混合 (即是否具有 3D 环绕声效果) 11. SetMixerGroup: 设置音频的混音器组 12. SetOutputAudioMixerGroup: 设置音频的输出混音器组 13. SetAudioStartTime: 设置音频的开始时间 14. SetAudioDelayTime: 设置音频的延迟时间 15. SetAudioVelocityUpdateMode: 设置音频的速度更新模式 16. SetAudioRolloffFactor: 设置音频的衰减因子 17. SetAudioLowPassFrequency: 设置音频的低通滤波器频率 18. SetAudioHighPassFrequency: 设置音频的高通滤波器频率 19. SetAudioSpread: 设置音频的扩散角度 20. SetAudioDopplerLevel: 设置音频的多普勒效应级别 21. SetAudioPriority: 设置音频的优先级 22. SetAudioBypassEffects: 设置音频是否绕过效果 23. SetAudioBypassListenerEffects: 设置音频是否绕过监 ### 回答2: UnityAudio组件命令主要包括以下几个: 1. Play:播放音频剪辑或音频源。 2. Stop:停止当前播放音频剪辑或音频源。 3. Pause:暂停当前播放音频剪辑或音频源。 4. UnPause:取消暂停,继续播放当前暂停音频剪辑或音频源。 5. PlayScheduled:在指定的时间戳播放音频剪辑或音频源。 6. SetScheduledStartTime:设置音频剪辑或音频源在指定时间戳开始播放。 7. SetScheduledEndTime:设置音频剪辑或音频源在指定时间戳结束播放。 8. SetScheduledTime:设置音频剪辑或音频源相对于当前位置的播放时间。 9. SetCustomCurve:设置自定义曲线来调整音频的音量或其他属性。 10. AudioClip.LoadAudioData:将音频剪辑的数据加载到内存中。 11. AudioClip.UnloadAudioData:从内存中释放音频剪辑的数据。 12. AudioSource.outputAudioMixerGroup:设置音频源的输出混音组。 13. AudioSource.bypassEffects:设置音频源是否绕过所有音效。 14. AudioSource.spatialBlend:设置音频源的3D或2D空间混合。 15. AudioSource.SetSpatializerFloat:设置音频源的特定空间化器的浮点参数。 以上是UnityAudio组件常用的命令,开发者可以根据需要来使用这些命令来控制音频播放和属性调整。 ### 回答3: UnityAudio组件命令有以下几种: 1. Play:播放声音。可以通过调用AudioSource组件的Play方法来播放已经设置好的音频片段。 2. Stop:停止播放声音。可以通过调用AudioSource组件的Stop方法来停止当前正在播放的声音。 3. Pause:暂停播放声音。可以通过调用AudioSource组件的Pause方法来暂停当前正在播放的声音,再次调用Play方法可以恢复播放。 4. Loop:循环播放声音。可以通过调用AudioSource组件的loop属性来设置声音是否循环播放,默认为false。 5. Volume:调整声音音量。可以通过调用AudioSource组件的volume属性,设置声音的音量大小,范围从0.0到1.0。 6. Pitch:调整声音的音调。可以通过调用AudioSource组件的pitch属性,设置声音的音调高低,范围从0.0到3.0。 7. PlayOneShot:播放一次性声音片段。可以通过调用AudioSource组件的PlayOneShot方法,播放不需要重复播放的声音。 8. AudioClip:设置音频片段。可以通过调用AudioSource组件的clip属性,设置要播放音频片段,可以是从资源文件中加载的音频文件。 9. Mute:设置声音是否静音。可以通过调用AudioSource组件的mute属性,设置声音是否静音,默认为false。 10. SpatialBlend:设置声音的空间混合。可以通过调用AudioSource组件的spatialBlend属性,设置声音的空间混合比例,范围从0.0到1.0,0.0表示2D声音,1.0表示3D声音。 以上是一些常用的Audio组件命令,可以用于控制和管理游戏中的声音效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值