【小白学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.mzph.cn/news/657589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app小程序自定义导航栏

最近在开发一个uni-app小程序&#xff0c;用到了自定义导航栏&#xff0c;在这里记录一下实现过程&#xff1a; page.json 在对应页面路由的style中设置入"navigationStyle": "custom"取消原生导航栏&#xff0c;自定义导航栏 {"path": "…

mysql入门到精通003-基础篇-SQL

1、目录 2、SQL通用语法及分类 2.1 SQL通用语法 2.2 SQL分类 3、SQL DDL数据库操作 3.1 SQL DDL表操作-创建&查询 3.1.1 表操作-查询 3.1.2 表操作-创建 create table tb_user(id int comment 编号,name varchar(50) comment 用户名,age int comment 用户名,gender varch…

【Go】微服务架构下实现etcd服务注册与服务发现

中心网关&#xff1a;gateway 四个微服务&#xff1a;user、message、note、relationship 1 中心网关实现服务发现 1.1 设计EtcdDiscovery类 package entityimport ("context""fmt"clientv3 "go.etcd.io/etcd/client/v3""gonote/gatewa…

重置vCenter的root和administrator@vsphere.local密码

1&#xff1a;首先要重置root密码&#xff0c;登录vCenter安装的ESXI主机&#xff0c;重启vCenter。 2:&#xff1a;重启机器的出现下面界面的时候按e键。 3&#xff1a;按e后出现下面的界面。 4&#xff1a;在最后一行结尾处输入rw init/bin/bash ,之后按ctrl-x或者F10重启。 …

spring boot 使用 Kafka

一、Kafka作为消息队列的好处 高吞吐量&#xff1a;Kafka能够处理大规模的数据流&#xff0c;并支持高吞吐量的消息传输。 持久性&#xff1a;Kafka将消息持久化到磁盘上&#xff0c;保证了消息不会因为系统故障而丢失。 分布式&#xff1a;Kafka是一个分布式系统&#xff0c…

7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ&#xff0c;包含对 RibbitMQ 的架构介绍、应用场景、坑点解析以及代码实战。 我将使用 waynboot-mall 项目作为代码讲解&#xff0c;项目地址&#xff1a;https://github.com/wayn111/waynboot-mall。本文大…

MATLAB - 仿真单摆的周期性摆动

系列文章目录 前言 本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程&#xff0c;然后对小角度进行分析求解&#xff0c;对任意角度进行数值求解。 一、步骤 1&#xff1a;推导运动方程 摆是一个遵循微分方程的简单机械系统。摆最初静止在垂直位置…

大数据 - Hadoop系列《四》- MapReduce(分布式计算引擎)的核心思想

上一篇&#xff1a; 大数据 - Hadoop系列《三》- MapReduce&#xff08;分布式计算引擎&#xff09;概述-CSDN博客 目录 13.1 MapReduce实例进程 13.2 阶段组成 13.4 概述 13.4.1 &#x1f959;Map阶段&#xff08;映射&#xff09; 13.4.2 &#x1f959;Reduce阶段执行过…

STM32F407移植OpenHarmony笔记3

接上一篇&#xff0c;搭建完环境&#xff0c;找个DEMO能跑&#xff0c;现在我准备尝试从0开始搬砖。 首先把/device和/vendor之前的代码全删除&#xff0c;这个时候用hb set命令看不到任何项目了。 /device目录是硬件设备目录&#xff0c;包括soc芯片厂商和board板级支持代码…

Linux 系统相关的命令

参考资料 Linux之chmod使用【linux】chmod命令详细用法 目录 一. 系统用户相关1.1 查看当前访问的主机和用户1.2 切换用户1.2.1 设置root用户密码1.2.2 普通用户和root用户切换 1.4 系统状态1.4.1 vmstat 查看当前系统的状态1.4.2 history 查看系统中输入过的命令 二. 系统文件…

图扑 HT UI 5.0 全新升级,开箱即用!

为顺应数字时代的不断发展&#xff0c;图扑 HT UI 5.0 在原有功能强大的界面组件库的基础上进行了全面升级&#xff0c;融入了更先进的技术、创新的设计理念以及更加智能的功能。HT UI 5.0 使用户体验更为直观、个性化&#xff0c;并在性能、稳定性和安全性等方面达到新的高度。…

githacker安装详细教程,linux添加环境变量详细教程(见标题三)

笔者是ctf小白&#xff0c;这两天也是遇到.git泄露的题目&#xff0c;需要工具来解决问题&#xff0c;在下载和使用的过程中也是遇到很多问题&#xff0c;写此篇记录经验&#xff0c;以供学习 在本篇标题三中有详细介绍了Linux系统添加环境变量的操作教程&#xff0c;以供学习 …

TensorFlow2实战-系列教程6:猫狗识别3------迁移学习

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 猫狗识别1 数据增强 猫狗识别2------数据增强 猫狗识别3------迁移学习 1、迁移学习 …

解读4篇混合类型文件Polyglot相关的论文

0. 引入 Polyglot文件指的是混合类型文件&#xff0c;关于混合类型文件的基础&#xff0c;请参考文末给出的第一个链接&#xff08;参考1&#xff09;。 1. Toward the Detection of Polyglot Files 1.1 主题 这篇2022年的论文&#xff0c;提出了Polyglot文件的检测方法。虽…

openssl3.2 - .pod文件的查看方法

文章目录 .pod文件的查看方法概述笔记初步的解决方法备注 - pod2html.bat的详细用法好像Perl就自带这个BATEND .pod文件的查看方法 概述 看到openssl源码目录下有很多.pod文件, 软件发布的帮助内容都在里面. 当make install后, 大部分的.pod都会转成html文件, 但是有一部分…

【Java程序设计】【C00215】基于SSM的勤工助学管理系统(论文+PPT)

基于SSM的勤工助学管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这个一个基于SSM的勤工助学管理系统&#xff0c;本系统共分为三种权限&#xff1a;管理员、教师和学生 管理员&#xff1a;首页、个人中心、教师管理、学生管理…

gdp调试—Linux

目录 介绍 使用 介绍 代码分为debug模式和release模式 如果一份代码要被调试&#xff0c;这份代码必须是debug Linux下编译代码默认是是release模式 如果你想代码是debug模式 必须加上 - g 小提&#xff1a; vim默认&#xff1a;命令模式 gcc默认&#xff1a;releas…

操作系统--进程、线程基础知识

一、进程 我们编写的代码只是一个存储在硬盘的静态文件&#xff0c;通过编译后就会生成二进制可执行文件&#xff0c;当我们运行这个可执行文件后&#xff0c;它会被装载到内存中&#xff0c;接着 CPU 会执行程序中的每一条指令&#xff0c;那么这个运行中的程序&#xff0c;就…

ModelArts加速识别,助力新零售电商业务功能的实现

前言 如果说为客户提供最好的商品是产品眼中零售的本质&#xff0c;那么用户的思维是什么呢&#xff1f; 在用户眼中&#xff0c;极致的服务体验与优质的商品同等重要。 企业想要满足上面两项服务&#xff0c;关键在于提升效率&#xff0c;也就是需要有更高效率的零售&#…

C++ //练习 3.8 分别用while循环和传统的for循环重写第一题的程序,你觉得哪种形式更好呢?为什么?

C Primer&#xff08;第5版&#xff09; 练习 3.8 练习 3.8 分别用while循环和传统的for循环重写第一题的程序&#xff0c;你觉得哪种形式更好呢&#xff1f;为什么? 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /********…