Unity 声音

摄像机默认自带声音插件,因此如果有多个摄像机的时候会报错,把另一个摄像机的声音插件删掉保留一个即可

将声音绑定到对象中:添加声音插件 Audio Source,将音乐直接拖入

唤醒时播放:运行起来是否播放

3D Sound Settings

①:物体上有个喇叭状图形,进行拖拽可以调节最小距离(声音)

②:滑动滚轮会发现有个最大球形,这个球形控制着最大距离(声音)

脚本控制

添加AudioTest脚本

    //写下该对象,脚本文件中会出现下面该选项,将音乐拖拽进去后,该对象不为空
    public AudioClip music;
    public AudioClip se;

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

public class AudioTest : MonoBehaviour
{
    //AudioClip
    public AudioClip music;
    public AudioClip se;

    //播放器组件
    private AudioSource player;


    // Start is called before the first frame update
    void Start()
    {
        player = GetComponent<AudioSource>();
        //设定播放的音频片段
        player.clip = music;
        //循环播放
        player.loop = true;
        //音量
        player.volume = 0.5f;
        //播放
        player.Play();
    }

    // Update is called once per frame
    void Update()
    {
        //按空格切换声音的播放和暂停
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if (player.isPlaying)
            {
                //暂停 对应关系:1 正常暂停
                //player.Pause();

                //停止 对应关系:2 每次暂停都重新开始
                player.Stop();
            }
            else
            {
                //继续 对应关系:1
                //player.UnPause();

                //开始播放 对应关系:2
                player.Play();
            }
        }

        //按鼠标左键播放声音
        if (Input.GetMouseButton(0))
        {
            //只播放一声
            player.PlayOneShot(se);
        }
    }
}
### Unity中的声音处理 #### 音频基础概念 在Unity中,音频的实现主要依赖于两个核心组件:`AudioSource` 和 `AudioListener`。其中,`AudioSource` 负责播放具体的音频文件,而 `AudioListener` 则用于接收这些音频信号并将其传递给用户的听觉设备[^2]。 #### 支持的音频格式 Unity支持多种常见的音频格式,包括但不限于 `.wav`, `.mp3`, `.ogg` 等。开发者可以根据项目需求选择合适的音频格式来优化资源加载速度和内存占用情况[^1]。 #### 播放声音的基本操作 下面是一个简单的脚本示例,展示如何通过编程方式控制声音的播放: ```csharp using UnityEngine; public class PlaySound : MonoBehaviour { public AudioClip clip; void Start() { AudioSource audioSource = GetComponent<AudioSource>(); if (audioSource != null && clip != null){ audioSource.clip = clip; audioSource.Play(); // 开始播放指定的声音剪辑 } } } ``` 此代码片段展示了如何获取对象上的`AudioSource`组件,并为其分配一个预定义好的音频剪辑(`clip`)之后立即开始播放该音频。 #### 使用AudioMixer进行高级控制 对于更复杂的音频管理需求,可以考虑采用`AudioMixer`来进行全局性的音量调整以及其他效果的应用。例如,可以通过如下方法动态改变整个游戏内的背景音乐响度: ```csharp using UnityEngine.Audio; private AudioMixer mixer; void SetVolume(float volumeLevel) { mixer.SetFloat("MusicVol", Mathf.Log10(volumeLevel) * 20); } ``` 这里假设已经在混音器中设置了名为"MusicVol"的一个参数滑块[^3]。 #### 控制整体声音状态 如果希望一次性停止或者恢复所有正在运行的游戏内音频,则可以直接修改`AudioListener`的相关属性。比如让全部音频进入暂停模式可执行以下命令:`AudioListener.pause = true;` 同样地,调节总体音量也可以非常简便地完成:`AudioListener.volume = desiredValueBetweenZeroAndOne;` 这里的取值范围是从零到一之间的小数形式表示相对强度比例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值