【小白学unity记录】使用unity播放声音

1. 示例

unity中播放声音涉及到两个组件。AudioSource和AudioClip。AudioSource可以理解为播放器,AudioClip可以理解为音频片段文件。AudioSource可以通过.clip属性切换音频片段。

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private int currentHealth;     
    private AudioSource shootingSound; 
    void Start()
    {
        currentHealth = maxHealth;

        // 添加 AudioSource 组件
        shootingSound = gameObject.AddComponent();
        // 加载射击音频文件
        AudioClip shootingClip = Resources.Load("audios/gun");
        if (shootingClip != null)
        {
            shootingSound.clip = shootingClip;
            shootingSound.Play();
        }
        else
        {
            Debug.LogError("Failed to load shooting audio clip!");
        }
    }
}

2. 详解代码片段

PlayerController 类的 Start 方法,主要负责初始化玩家飞船的一些属性,包括:

  1. AudioSource 组件的添加:

    // 添加 AudioSource 组件
    shootingSound = gameObject.AddComponent();
    

    这一行代码在玩家飞船对象上添加了一个 AudioSource 组件。AudioSource 是用于播放音频的组件,可以控制音频的播放、暂停、音量等属性。

  2. 加载射击音频文件:

  3. // 加载射击音频文件 AudioClip 
    ​​​​​​​shootingClip = Resources.Load 

    这一行代码尝试从 "Resources" 文件夹中加载名为 "audios/gun" 的音频文件。Resources.Load 是 Unity 中用于从 "Resources" 文件夹加载资源的方法。加载成功后,将音频文件赋值给 shootingSound.clip 属性。

  4. 【小白学unity记录】使用unity播放声音_第1张图片

  5. 播放射击音频:

    // 加载射击音频文件
    AudioClip shootingClip = Resources.Load("audios/gun");
    

    这部分代码首先检查加载的音频文件是否为空,如果不为空,将加载的音频文件设置为 shootingSound.clip,然后通过 shootingSound.Play() 播放射击音效。

  6. 错误处理:

    if (shootingClip != null)
    {
        shootingSound.clip = shootingClip;
        shootingSound.Play();
    }
    

    如果加载音频文件失败,输出错误信息到 Unity 控制台,以便开发者进行调试。

3. AudioSource方法大全

AudioSource 是 Unity 中用于播放音频的组件,提供了许多常用的方法和属性。以下是一些 AudioSource 常用的方法:

  1. 播放音频:

    • Play(): 开始播放音频。
    • PlayDelayed(float delay): 延迟一定时间后开始播放音频。
  2. 暂停和继续播放:

    • Pause(): 暂停音频的播放。
    • UnPause(): 继续之前暂停的音频播放。
  3. 停止音频播放:

    • Stop(): 立即停止音频播放。
  4. 音量控制:

    • volume: 获取或设置音频的音量(0.0 到 1.0 之间的值)。
  5. 循环播放:

    • loop: 获取或设置音频是否循环播放。
  6. Pitch(音调)控制:

    • pitch: 获取或设置音频的音调(调整音频的播放速度)。
  7. 空间音频(3D音频):

    • spatialBlend: 获取或设置音频的空间混合度,用于控制音频在3D空间中的效果。
  8. 时间控制:

    • time: 获取或设置音频的当前播放时间。
    • timeSamples: 获取或设置音频的当前播放时间(以采样为单位)。
  9. 播放速度控制:

    • pitch: 获取或设置音频的播放速度。
    • time: 获取或设置音频的当前播放时间。
  10. 循环区域播放:

    • SetScheduledStartTime(double time): 在指定时间之后开始音频的播放。
    • SetScheduledEndTime(double time): 在指定时间之后结束音频的播放。

 

你可能感兴趣的:(Unity,unity,游戏引擎)