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

unity学习30:Audio Source, Audio clip 音效和音乐

目录

1 音乐相关必须要有 Audio listener 和Source

2 Scene里必须要有 Audio listener

3 Audio Source

3.1 Audio Source 就是音源,可播放的音乐clip 分类

3.2 创建Audio Source

3.3 各种属性

3.4  3D sound Settings

4 使用脚本来播放声音

4.1 声明AudioClip 并进行外部绑定

4.2 GetComponent() 

4.3 AudioSource对应的控制

4.4 用按键去控制

4.4.1 控制

4.4.2 实际代码

5 播放音效


1 音乐相关必须要有 Audio listener 和Source

  • Audio listener : 负责听到声音
  • Audio Source : 负责发出声音,声音源

2 Scene里必须要有 Audio listener

  • Scene里必须要有 Audio listener
  • Audio listener 也不需要单独创建,一般场景里会自动创建
  • 每个场景Scene创建时,会自动创建1个camera,每个camera都会默认带一个 audio listener
  • 如果有多个camera,就会有多个audio listener,保留1个即可

3 Audio Source

3.1 Audio Source 就是音源,可播放的音乐clip 分类

  • Audio Source 就是音源,有一个喇叭符号
  • 音效, 一般就是短时的,一次性播放的音效文件 clip
  • 音乐,一般是背景音乐等,比较长,循环或单次等

3.2 创建Audio Source

  • 比如在一个gameObject上创建一个 Audio Source
  • 然后把 Asset shop 下载,导入的文件,拖到这里
  • 开始运行就可以测试了

3.3 各种属性

  • output
  • mute: //静音
  • bypass Effects :  //绕过音响
  • bypass listener Effects : // 绕过监听器效果
  • play on awake
  • loop        

3.4  3D sound Settings

  • 小圆球 : 声音发出的最小距离
  • 大圆球: 声音发出的最小距离, 一个超级大球
  • 3D曲线:
  • 3D 声音,还是远了听了就变小,符合现实世界原理

4 使用脚本来播放声音

  • 外面的各种勾选,比如loop可以不勾选
  • 可以脚本里控制

4.1 声明AudioClip 并进行外部绑定

  • public AudioClip m1;  //绑定外部clip
  • public AudioClip m2;
  • 脚本里声明public 变量后, unity编辑器可以进行资源绑定

    public AudioClip m1;  //绑定外部clip
    public AudioClip m2;

//大概就相当于  其他语言里 path="" 这种指定外部资源吧

4.2 GetComponent<AudioSource>() 

  • GetComponent<>()
  • GetComponent<AudioSource>() 返回1个AudioSource对象
  • 所以需要这么定义

直接一句话定义和赋值

  • AudioSource player1=GetComponent<AudioSource>();

或者分开定义和赋值

  • private AudioSource player1;       
  • player1=GetComponent<AudioSource>();

4.3 AudioSource对应的控制

// 把外部获得的clip文件,赋值给player1.clip

  • player1.clip=m1; 

//设置循环

  • player1.loop=true

// 控制声音

  • player1.volume=0.5f

// 播放

  • player1.Play()

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestMusic : MonoBehaviour
{//声明AudioClippublic AudioClip m1;  //绑定外部clippublic AudioClip m2;//定义播放器组件private AudioSource player1;// Start is called before the first frame updatevoid Start(){player1=GetComponent<AudioSource>();//player1.clip=m1;player1.loop=true;player1.volume=0.5f;   player1.Play();    }// Update is called once per framevoid Update(){}
}

4.4 用按键去控制

4.4.1 控制

  • player1.Pause();
  • player1.Stop();
  • player1.UnPause();
  • player1.play();

4.4.2 实际代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestMusic : MonoBehaviour
{//声明AudioClippublic AudioClip m1;  //绑定外部clippublic AudioClip m2;//定义播放器组件private AudioSource player1;// Start is called before the first frame updatevoid Start(){player1=GetComponent<AudioSource>();//player1.clip=m1;player1.loop=true;player1.volume=0.5f;   player1.Play();    }// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.Space)){if(player1.isPlaying==true){//暂停播放player1.Pause();//player1.Stop();}else{//继续播放player1.UnPause();//player1.play();}}}
}

5 播放音效

  • 音效的播放方式
  • player1.PlayOneShot()
  • 不循环,
  • 每次只执行一次
  • 可以反复执行

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;public class TestMusic : MonoBehaviour
    {//声明AudioClippublic AudioClip m1;  //绑定外部clippublic AudioClip m2;//定义播放器组件private AudioSource player1;// Start is called before the first frame updatevoid Start(){player1=GetComponent<AudioSource>();//player1.clip=m1;player1.loop=true;player1.volume=0.5f;   player1.Play();    }// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.Space)){if(player1.isPlaying==true){//暂停播放player1.Pause();//player1.Stop();}else{//继续播放player1.UnPause();//player1.play();}}if(Input.GetMouseButtonDown(0)){player1.PlayOneShot(m2);}}
    }
    

    相关文章:

    unity学习30:Audio Source, Audio clip 音效和音乐

    目录 1 音乐相关必须要有 Audio listener 和Source 2 Scene里必须要有 Audio listener 3 Audio Source 3.1 Audio Source 就是音源&#xff0c;可播放的音乐clip 分类 3.2 创建Audio Source 3.3 各种属性 3.4 3D sound Settings 4 使用脚本来播放声音 4.1 声明AudioC…...

    【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)

    目录 1.QLineEdit 单行输入框 例&#xff1a;输入个人信息&#xff0c;通过按钮提交 例&#xff1a;为输入框设置验证器&#xff0c;检查输入的电话 例&#xff1a;验证两次输入的密码是否一致 例&#xff1a;是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…...

    openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能

    本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程&#xff08;当前docker最新版本为27.5.1&#xff0c;生产环境为保障稳定性&#xff0c;选择升级到上一个大版本26的最新小版本&#xff09;。 一、现有环境 1、系统版本 [rootlocalhost opt]# cat /etc…...

    深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品

    在电商领域&#xff0c;通过关键字搜索商品是常见的需求。无论是商家分析竞争对手&#xff0c;还是消费者寻找心仪的商品&#xff0c;获取搜索结果中的商品信息都至关重要。本文将详细介绍如何利用 Java 爬虫按关键字搜索淘宝商品&#xff0c;并提供完整的代码示例。 一、Java…...

    STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI

    1 引言 STM32 微控制器在嵌入式领域应用广泛&#xff0c;因为它性能不错、功耗低&#xff0c;还有丰富的外设&#xff0c;像工业控制、智能家居、物联网这些场景都能看到它的身影。与此同时&#xff0c;人工智能技术发展迅速&#xff0c;也逐渐融入各个行业。 把 AI 部署到 STM…...

    C++ Primer 成员访问运算符

    欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

    芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接

    全新的BG22L为常见蓝牙设备提供强大的安全性和处理能力&#xff0c;而BG24L支持先进的AI/ML加速和信道探测功能 2025年2月6日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#x…...

    java后端开发面试常问

    面试常问问题 1 spring相关 &#xff08;1&#xff09;Transactional失效的场景 <1> Transactional注解默认只会回滚运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;如果方法中抛出了其他异常&#xff0c;则事务不会回滚&#xff08;数据库数据仍然插…...

    ‌双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?

    今天给大家分享的是一位粉丝的提问&#xff0c;双非硕研一是自学嵌入式走偏硬件还是说深入学习Linuxc/c走软开呢&#xff1f; 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 粉丝提问&#xff1a; 老师好&#xff…...

    Windows系统使用Git教程详解

    使用 Git 可以帮助开发人员更好地进行版本控制和团队协作&#xff0c;下面是 Windows 上 Git 的详细使用教程。 安装 Git 首先&#xff0c;你需要在 Windows 上安装 Git。你可以从 Git 官网下载最新的安装包&#xff08;https://git-scm.com/downloads&#xff09;&#xff0c;…...

    Linux firewalld开启日志审计功能(2)

    在Firewalld防火墙中启用和配置logdenied选项&#xff0c;记录被拒绝的数据包&#xff08;等同于开启日志功能&#xff09; 效果展示&#xff1a; 1.开启日志记录功能 firewall-cmd --set-log-deniedunicast #重新加载生效配置 firewall-cmd --reload 2.配置rsyslog捕获日志…...

    【声音转文字CapsWriter】声音随时转化为文字,CapsWriter提高工作效率

    文章目录 前言1. 软件与模型下载2. 本地使用测试3. 异地远程使用3.1 内网穿透工具下载安装3.2 配置公网地址3.3 修改config文件3.4 异地远程访问服务端 4. 配置固定公网地址4.1 修改config文件 5. 固定tcp公网地址远程访问服务端 前言 今天我要给大家安利一个神器——CapsWrit…...

    深入理解小波变换:信号处理的强大工具

    引言 在科学与工程领域&#xff0c;信号处理一直是关键环节&#xff0c;傅里叶变换与小波变换作为重要的分析工具&#xff0c;在其中发挥着重要作用。本文将深入探讨小波变换&#xff0c;阐述其原理、优势以及与傅里叶变换的对比&#xff0c;并通过具体案例展示其应用价值。 一…...

    人机交互系统实验三 多通道用户界面

    实验目的和要求 1)了解常见的多通道用户界面 2)查找资料&#xff0c;熟悉一种多通道用户界面并写出综述 实验环境 Windows10 实验内容与过程 (一) 实验内容: 要求上网查找资料&#xff0c;熟悉一种多通道用户界面并写出综述&#xff0c;可以是眼动跟踪、手势识别、 三维…...

    Filter -> MaskFilter遮罩滤镜详解

    MaskFilter 作用对象&#xff1a;MaskFilter 主要用于Paint的外观效果&#xff0c;给用Paint绘制的内容添加模糊或者浮雕效果应用效果&#xff1a; MaskFilter 处理位图的遮罩效果&#xff0c;影响绘制的边缘或整体形状主要用于模糊处理、浮雕效果等&#xff0c;通过影响绘制对…...

    RK3568使用QT操作LED灯

    文章目录 一、QT中操作硬件设备思路Linux 中的设备文件操作硬件设备的思路1. 打开设备文件2. 写入数据到设备3. 从设备读取数据4. 设备控制5. 异常处理在 Qt 中操作设备的典型步骤实际应用中的例子:控制 LED总结二、QT实战操作LED灯设备1. `mainwindow.h` 头文件2. `mainwindo…...

    python学opencv|读取图像(五十七)使用cv2.bilateralFilter()函数实现图像像素双边滤波处理

    【1】引言 前序学习过程中&#xff0c;已经掌握了对图像的基本滤波操作技巧&#xff0c;具体的图像滤波方式包括均值滤波、中值滤波和高斯滤波&#xff0c;相关文章链接有&#xff1a; python学opencv|读取图像&#xff08;五十四&#xff09;使用cv2.blur()函数实现图像像素…...

    为何实现大语言模型的高效推理以及充分释放 AI 芯片的计算能力对于企业级落地应用来说,被认为具备显著的研究价值与重要意义?

    &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ AI 芯片&#xff1a;为人工智能而生的 “大脑” AI 芯片&#xff0c;又称人工智能加速器或计算卡&#xff0c;是专为加速人工智能应用&#xff0c;特别是深度学习任务设计的专用集成电路&#xff08;A…...

    Android 约束布局ConstraintLayout整体链式打包居中显示

    Android 用约束布局ConstraintLayout实现将多个控件视作一个整体居中显示&#xff0c;使用 app:layout_constraintHorizontal_chainStyle"packed"实现 chain 除了链条方向有横向和竖向区分外&#xff0c; chain链条上的模式有 3种 spread - 元素将被展开&#…...

    在C#中,Array,List,ArrayList,Dictionary,Hashtable,SortList,Stack的区别

    Array Array你可以理解为是所有数组的大哥 普通数组 : 特点是长度固定, 只能存储相同类型的数据 static void Main(string[] args){//声明int[] ints;string[] strings;People[] peoples;//默认值 //int 类型是 0//string 类型是 nullint[] ints1 { 1, 2, 3 };string[] …...

    【Axure高保真原型】引导弹窗

    今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

    conda相比python好处

    Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

    论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

    HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

    家政维修平台实战20:权限设计

    目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

    Nuxt.js 中的路由配置详解

    Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

    【Java_EE】Spring MVC

    目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

    什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

    文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

    MySQL账号权限管理指南:安全创建账户与精细授权技巧

    在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

    音视频——I2S 协议详解

    I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

    windows系统MySQL安装文档

    概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...