Unity 基础 之 声音系统介绍

1,328 阅读2分钟

这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战

Unity 支持的音频格式

  • AIFF: 最适合短音效果 可以在编辑器中按需求压缩
  • WAV: 最适合短音效果 可以在编辑器中按需求压缩
  • MP3: 最适合较长的音乐曲目
  • OGG: 压缩音频格式(与iPhone设备和某些Android设备不兼容),最适合较长音乐

相关组价介绍

在Unity中播放声音的前提是同时具有三个组件 :

  • AudioListener:用于接接收AudioAource 组件播放声音,然后通过声卡进行输出。此组件通常会在创建场景时自动被添加到主摄像机上。
  • AudioClip:指需要播放的各种格式的声音文件 。
  • AudioSource:用于进行声音播放组件,可以控制播放,暂停,音量调等。

Audiosource 组件编辑器上的一些主要属性

  • Mute:静音开关
  • Play On Awake :此对象在生命周期中的Awake处开始播放
  • Loop: 是否循环播放
  • Volume:音量大小调节
  • Pitch:用于调节音调
  • Stereo Pan:立体声道调整,小于0偏左声道,大于0偏右声道

代码播放音频

实现步骤:

  1. 创建“GameObject”,并在其身上挂载Audio Source组件
  2. 将音频导入Unity工程,并赋值给Audio Source组件的AudioClip属性
  3. 创建脚本AudioTest,并挂载到“GameObject”,编写脚本后运行程序即可

image.png

示例: 运行程序,点击鼠标左键开始播放声音,点击右键暂停播放:

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

public class AudioTest : MonoBehaviour
{
    // 音频组件
    private AudioSource audioSource;
    void Start()
    {
        // 获取组件
        audioSource = GetComponent<AudioSource>();
        // 音量调到最大
        audioSource.volume = 1;
        // 设置为循环播放
        audioSource.loop = true;
        // 关闭启动自动播放
        audioSource.playOnAwake = false;
        // 停止播放音效
        audioSource.Stop();
    }

    // Update is called once per frame
    void Update()
    {
        // 点击鼠标左键
        if (Input.GetMouseButtonDown(0))
        {
            // 播放音效
            audioSource.Play();
        }
        // 点击鼠标右键
        else if (Input.GetMouseButtonDown(1))
        {
            // 停止播放音效
            audioSource.Stop();
        }
    }
}