当前位置: 首页 > article >正文

【小白学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<AudioSource>();
        // 加载射击音频文件
        AudioClip shootingClip = Resources.Load<AudioClip>("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 组件。AudioSource 是用于播放音频的组件,可以控制音频的播放、暂停、音量等属性。

  2. 加载射击音频文件:

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

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

  4. 播放射击音频:

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

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

  5. 错误处理:

    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): 在指定时间之后结束音频的播放。

 


http://www.kler.cn/a/227674.html

相关文章:

  • lstm代码解析1.2
  • 想学习JAVA编程,请问应该如何去学习?
  • Android --- CameraX讲解
  • HTML(快速入门)
  • 洛谷 P10288 [GESP样题 八级] 区间 C++ 完整题解(STL二分法)
  • 窥探目标文件
  • C语言实战系列四:电子时钟
  • Unity_Shader_Shader Graph
  • 344. 反转字符串(力扣LeetCode)
  • springboot(ssm交友系统 在线社交论坛网站系统Java系统
  • node.js(nest.js控制器)学习笔记
  • 【C语言】socket编程接收问题
  • 【2024.2.4练习】国王游戏
  • 一页纸教你了解Git工作流程
  • 编曲学习:和弦编配(下) 和弦进行 转位和弦 Leading bass
  • Linux 驱动开发基础知识——总线设备驱动模型(七)
  • 创建TextMeshPro字体文件
  • 使用_NT_SYMBOL_PATH在启动VS前设置PDB路径
  • openGauss学习笔记-213 openGauss 性能调优-总体调优思路
  • [SWPUCTF 2021 新生赛]easyupload1.0
  • 设计模式——职责链模式(Chain of Responsibility Pattern)
  • 【开源】基于JAVA+Vue+SpringBoot的河南软件客服系统
  • 详解C++类和对象(上)
  • elk之基础概念
  • UnityShader(十三)Unity内置的函数
  • AJAX-URL查询参数