当前位置: 首页 > 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[] …...

    C++_核心编程_多态案例二-制作饮品

    #include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

    rknn优化教程(二)

    文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

    在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

    在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

    使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

    以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

    Robots.txt 文件

    什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

    三体问题详解

    从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

    拉力测试cuda pytorch 把 4070显卡拉满

    import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

    【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

    骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

    Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

    在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

    视觉slam十四讲实践部分记录——ch2、ch3

    ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...