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

Unity基础学习(十五)核心系统——音效系统

目录

一、关于音频文件的导入相关

二、音频源组件Audio Source

三、Audio Listener的介绍

四、关于播放音乐的方式 

 五、麦克风输入相关

Microphone 类方法与属性总览​

1. Start 方法​

​2. End 方法​

​3. IsRecording 方法​

​4. GetPosition 方法​

​5. devices 属性​


一、关于音频文件的导入相关

音频文件的几种常见格式: wav mp3 ogg aiff

随意将一个音频文件拖入到Unity中,可发现如下面板:

Force To Mono多声道转单声道
Normalize 强制为单声道时,混合过程中被标准化
Load In Background 在后台加载,不阻塞主线程
Ambisonic
        立体混响声 
        非常适合 360 度视频和 XR 应用程序
        如果音频文件包含立体混响声编码的音频,请启用此选项

大部分情况下这些参数,是不用手动调整的,默认的就很OK,除非你想做什么比较特殊的效果。

接着我们来看看这里的参数:

LoadType


加载类型
    Decompress On Load
不压缩形式存在内存,加载块,但是内存占用高
        适用于小音效
    Compress in memory
压缩形式存在内存,加载慢,内存小
        仅适用于较大音效文件
    Streaming
        以流形式存在,使用时解码。内存占用最小,cpu消耗高。建议设置为该模式,避免出现奇奇怪怪的问题
        性能换内存
Preload Audio Data
        预加载音频,勾选后进入场景就加载,不勾选,第一次使用时才加载。

Compression Format


压缩方式
    PCM
音频以最高质量存储
    Vorbis
相对PCM压缩的更小,根据质量决定
    ADPCM
包含噪音,会被多次播放的声音,      

  PCM 和 ADPCM 压缩格式允许自动优化或手动降低采样率,采样率越高,损失就越小,声音音质就会更还原。如碰撞声

Quality
音频质量 
确定要应用于压缩剪辑的压缩量。
不适用于 PCM/ADPCM/HEVAG 格式

Sample Rate Setting


    Preserve Sample Rate
此设置可保持采样率不变(默认值)
    Optimize Sample Rate
此设置根据分析的最高频率内容自动优化采样率
    Override Sample Rate
此设置允许手动覆盖采样率
因此可有效地将其用于丢弃频率内容。

二、音频源组件Audio Source

        Unity引擎中的Audio Source(音频源)组件是用于在游戏场景中播放音频的核心组件。它通过加载音频剪辑(AudioClip)并控制播放参数,实现声音的播放、空间化、混合及特效处理。注意:这个组件只是管理,各种音乐怎么播放,可以有很多个,你可以理解为这是音源,实际接收用其他的组件进行。

​AudioClip​:绑定需要播放的音频文件(如背景音乐、音效)。

​Output​:指定音频输出到某个音频混音器(Audio Mixer)​,用于全局音频控制(如音量分层、特效叠加)。

Mute​:静音,勾选后音频静音但仍在后台播放。

​Play On Awake​:勾选后,场景启动时自动播放音频。

​Loop​:勾选后音频循环播放(如背景音乐)。

​Bypass Effects​:勾选后绕过所有音频特效处理(如混响、滤波),输出原始音频。

​Bypass Listener Effects​:仅绕过监听器(Audio Listener)的特效处理。

​Bypass Reverb Zones​:忽略场景中的混响区域效果。

​Priority (0-256)​​:音频播放优先级。数值越低优先级越高,系统在资源不足时会优先保留高优先级音频

Volume​:音量大小(0-1,图中为最大音量1)。

​Pitch​:音调高低(1为原速,>1加速升调,<1减速降调)。

​Stereo Pan​:立体声左右声道平衡(-1左偏,0居中,1右偏)。

​Spatial Blend​:混合2D与3D音效(0为纯2D全局音效,1为纯3D空间音效,受物体位置影响)。

​Reverb Zone Mix​:控制混响区域对音频的影响强度(0-1,图中为1,即完全应用混响效果)。

3D Sound Settings​(可展开):进一步调整3D音频衰减曲线、多普勒效应等

        ​Doppler Level(多普勒等级,值为1)​​

​功能​:模拟现实中多普勒效应——当声源(如汽车、角色)快速靠近或远离听者时,声音频率会因相对速度发生变化(靠近时音调变高,远离时变低)。

​取值逻辑​:值为 ​0​ 时禁用多普勒效果;1​ 为现实标准值(图中默认),数值越大效果越夸张(如科幻场景)。

        ​Spread(扩散,值为150)​​

​功能​:控制 ​立体声扩散角度​(单位:度)。

​效果​:数值越大,声源在3D空间中的立体声分布越广(如环境音效扩散到周围);数值为 ​0​ 时声音完全集中在声源朝向。

        ​Volume Rolloff(音量衰减类型,Logarithmic Roll)​​

​功能​:定义声音随距离听者的衰减方式。

​类别对比​:

        ​Logarithmic(对数衰减)​​:声音快速衰减至最小距离外(适合短距离音效,如枪声)。

        ​Linear(线性衰减)​​:均匀衰减(适合中距离音效)。

        ​Custom(自定义)​​:手动绘制衰减曲线。

        ​Min/Max Distance(最小/最大距离,1/500)​​

​最小距离(1)​​:在此范围内音量最大且不衰减(如角色脚步声应设为接近身体的范围)。

​最大距离(500)​​:超过此距离后声音完全消失(需根据场景尺寸动态调整,避免过多音频计算)。

        关于自定义的曲线:

        图表解析(Listener 相关)​​

​横轴(距离)​​:声源与听者的距离(0~500)。

​关键曲线​:

​红色(Volume)​​:显示音量随距离减弱的曲线(对数衰减表现为初期锐减,后期平缓)。

​绿色(Spatial Blend)​​:混合2D与3D音效的比例(例如远处声音用更多3D效果)。

​蓝色(Spread)​​:扩散范围随距离的变化。

​黄色(Reverb Zone Mix)​​:随距离调整混响强度(如山洞中的回声)。

三、Audio Listener的介绍

        Audio Listener 是 Unity 中用于接收场景中所有 ​Audio Source​ 音频信号的组件,相当于玩家的“耳朵”。

核心职责​:

​位置与方向感知​:根据监听器的位置和旋转方向,计算 3D 音频的空间效果(如左右声道差异、距离衰减)。

​音频混合输出​:将场景中所有有效范围内的 Audio Source 混合后输出到扬声器或耳机。

特点:

唯一性规则​

​每个场景只能有一个活跃的 Audio Listener​!

默认情况下,新场景中的主摄像机会自动挂载 Audio Listener。

​冲突处理​:如果多个对象挂载了 Audio Listener,Unity 会报错并仅保留第一个激活的组件。

小结:

        在 ​Unity 音频系统中,​Audio Source(音频源)​和 ​Audio Listener(音频监听器)​是分工协作的两个核心组件:

​1. Audio Source 的作用​

​控制音频如何播放​:负责声音的“发射”逻辑,包括:

​音频文件加载​(AudioClip)、播放/暂停/循环控制。

​空间化参数设置​:通过 3D Sound Settings(如衰减曲线、多普勒效应、扩散角度)定义声音在 3D 空间中的传播规则。

​音效处理​:音量(Volume)、音调(Pitch)、声道平衡(Stereo Pan)等基础属性,以及混响、滤波等特效的叠加。

​不涉及“听到什么”​​:它仅定义声音的源头和传播方式,但无法决定这些声音是否被玩家接收。

​2. Audio Listener 的作用​

​负责音频的“监听”​​:相当于玩家的“耳朵”,决定哪些声音会被实际听到。核心功能包括:

​位置与方向感知​:监听器的位置(通常绑定到主摄像机)决定了玩家听到的声音空间关系(如左右声道差异、距离衰减)。

​环境效果整合​:接收场景中所有 Audio Source 的输入,并根据监听器的位置和方向,混合成最终输出到扬声器的音频信号。

​唯一性限制​:每个场景只能有一个活跃的 Audio Listener​(通常挂载在玩家角色的摄像机上)。

​协同工作流程​

​Audio Source 发射声音​:根据其 3D 参数(如 Min/Max Distance、衰减曲线)计算声音的传播范围与强度。

​Audio Listener 接收声音​:根据监听器的位置和方向,筛选出有效范围内的 Audio Source,并计算其相对位置、速度、方向对声音的影响(如多普勒效应、立体声平衡)。

​最终混合输出​:将多个 Audio Source 的声音按优先级和空间关系混合后输出到音频设备。

四、关于播放音乐的方式 

直接调用Audio Source组件中的属性或者API。

        AudioSource ao;然后获取该组件即可。

方法名作用代码示例
Play()播放音频(从头开始)ao.Play();
PlayDelayed(float)延迟指定秒数后播放ao.PlayDelayed(2.5f);
Stop()立即停止播放并重置进度ao.Stop();
Pause()暂停播放(保留进度)ao.Pause();
UnPause()从暂停处继续播放ao.UnPause();
PlayOneShot(AudioClip)播放一次音频(不打断当前播放,适合短音效)ao.PlayOneShot(clip);

补充一个是否正在播放的属性:ao.isPlaying 

例如动态循环播放某一组音乐:

// 使用单一 AudioSource 播放多个音效
public AudioClip[] clips;
private int currentClipIndex = 0;void PlayNextClip() {ao.Stop();ao.clip = clips[currentClipIndex];ao.Play();//这里的模运算 是为了防止越界//例如:设clips.Length为10//则 随着当前currenrClipIndex的增加,保障了数组不会越界,会逐个播放currentClipIndex = (currentClipIndex + 1) % clips.Length;
}

 五、麦克风输入相关

        所谓的麦克风就是,我们利用一些设备,能够在Unity通过麦克风转成我们想要的音频文件。

Microphone 类方法与属性总览

名称类型参数/返回值描述
Start静态方法(string deviceName, bool loop, int lengthSec, int frequency) → AudioClip开始录制音频,返回关联的 AudioClip。若设备未准备好,可能返回 null
End静态方法(string deviceName) → void停止指定设备的录制(传 null 表示默认设备)。
IsRecording静态方法(string deviceName) → bool检查指定设备是否正在录制。
GetPosition静态方法(string deviceName) → int获取当前录制位置的样本索引(用于计算录制时长:position / frequency)。
devices静态属性string[]只读属性,返回所有可用的麦克风设备名称列表(若权限未授权可能返回空数组)。
1. Start 方法
参数名类型描述
deviceNamestring麦克风设备名称(传 null 使用默认设备)。
loopbool是否循环录制:true 时超过 lengthSec 后覆盖开头,false 时停止。
lengthSecint录制最大时长(秒)。
frequencyint采样率(常用值:44100Hz 或 48000Hz)。
返回值AudioClip录制的音频数据(需手动赋值给 AudioSource 播放或处理)。
2. End 方法
参数名类型描述
deviceNamestring目标设备名称(传 null 为默认设备)。
3. IsRecording 方法
参数名类型描述
deviceNamestring目标设备名称(传 null 为默认设备)。
返回值booltrue 表示设备正在录制。
4. GetPosition 方法
参数名类型描述
deviceNamestring目标设备名称(传 null 为默认设备)。
返回值int当前录制位置的样本索引。
5. devices 属性
类型描述
string[]返回当前设备连接的麦克风名称列表(需确保已获取麦克风权限)。

 综合示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestMicrophone : MonoBehaviour
{private AudioSource adsource;private AudioClip recordedClip;public bool isRecording = false;// Start is called before the first frame updatevoid Start(){adsource = this.GetComponent<AudioSource>();if (adsource == null) {adsource = this.gameObject.AddComponent<AudioSource>();}print("所有可用麦克风");foreach(string name in Microphone.devices) {print(name);}}// Update is called once per framevoid Update(){//if (Input.GetKeyDown(KeyCode.Space) && !isRecording) {//    if (Microphone.devices.Length == 0) {//        Debug.LogError("未检测到麦克风");//        return;//    }//    recordedClip = Microphone.Start(null,false,10,44100);//    isRecording = true;//    Debug.Log("开始录制...");//}//if (Input.GetKeyUp(KeyCode.Space) && isRecording) {//    //停止录制//    Microphone.End(null);//    isRecording = false;//    //播放刚存的切片//    adsource.clip = recordedClip;//    adsource.Play();//    Debug.Log("播放录制内容");//    // 获取音频数据(示例)//    float[] samples = new float[recordedClip.samples * recordedClip.channels];//    recordedClip.GetData(samples, 0);//    Debug.Log($"音频数据长度: {samples.Length}");//}}
}

相关文章:

Unity基础学习(十五)核心系统——音效系统

目录 一、关于音频文件的导入相关 二、音频源组件Audio Source 三、Audio Listener的介绍 四、关于播放音乐的方式 五、麦克风输入相关 Microphone 类方法与属性总览​ 1. Start 方法​ ​2. End 方法​ ​3. IsRecording 方法​ ​4. GetPosition 方法​ ​5. devic…...

计算机视觉----常见卷积汇总

普通卷积   普通卷积大家应该都比较熟悉了&#xff0c;如果不熟悉的话&#xff0c;可以参考我之前的博客&#xff0c;或者去网上自行百度。这里主要想补充两个知识点。一&#xff1a;卷积核参数量怎么算&#xff1f; 二&#xff1a;如何高效的并行运算卷积滑窗&#xff1f; …...

【人工智能-agent】--Dify+Mysql+Echarts搭建了一个能“听懂”人话的数据可视化助手!

Echarts官网&#xff1a;https://echarts.apache.org/zh/index.html ECharts 是一个由百度团队开发的、基于 JavaScript 的开源可视化图表库&#xff0c;它提供了丰富的图表类型和强大的交互功能&#xff0c;能够帮助开发者轻松创建专业级的数据可视化应用。 核心特点 丰富的图…...

【专栏启动】开篇:为什么是 Django + Vue3?测试平台的技术选型与架构蓝图

【专栏启动】开篇&#xff1a;为什么是 Django Vue3&#xff1f;测试平台的技术选型与架构蓝图 前言一、为什么是 Django Vue3&#xff1f;二、测试平台的架构设计蓝图三、测试平台模块功能概述 结语 前言 一个高效、稳定、易用的测试平台&#xff0c;不仅能够帮助团队提升测…...

Rust 学习笔记:关于 Vector 的练习题

Rust 学习笔记&#xff1a;关于 Vector 的练习题 Rust 学习笔记&#xff1a;关于 Vector 的练习题哪个调用会报错&#xff1f;以下代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;以下代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;以下代码…...

Modbus TCP转Profinet网关:数字化工厂异构网络融合的核心枢纽

在现代工业生产中&#xff0c;随着智能制造和工业互联网的不断发展&#xff0c;数字化工厂成为了制造业升级的重要方向。数字化工厂的核心在于实现设备、数据和人的互联互通&#xff0c;而这其中&#xff0c;通信协议扮演着至关重要的角色。今天&#xff0c;我们就来探讨开疆智…...

精益数据分析(62/126):从客户访谈评分到市场规模估算——移情阶段的实战进阶

精益数据分析&#xff08;62/126&#xff09;&#xff1a;从客户访谈评分到市场规模估算——移情阶段的实战进阶 在创业的移情阶段&#xff0c;科学评估用户需求与市场潜力是决定产品方向的关键。今天&#xff0c;我们结合Cloud9 IDE的实战经验与《精益数据分析》的方法论&…...

各类开发教程资料推荐,Java / python /golang /js等

更多资源在文末&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447; 1. 入门首选&#xff08;易学且应用广&#xff09; Python 特点&#xff1a;语法简洁、易读&#xff0c;社区资源丰富。 用途&#…...

现代健康养生小贴士

在忙碌的现代生活中&#xff0c;掌握一些简单实用的健康养生技巧&#xff0c;能轻松为身体 “充电”&#xff0c;提升生活质量。以下从饮食、运动、作息等方面&#xff0c;为你带来科学易执行的养生建议。 一、饮食&#xff1a;吃对食物&#xff0c;为健康加分 早餐要吃好&am…...

每日一道leetcode(新学数据结构版)

208. 实现 Trie (前缀树) - 力扣&#xff08;LeetCode&#xff09; 题目 Trie&#xff08;发音类似 "try"&#xff09;或者说 前缀树 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动…...

ChromaDB 向量库优化技巧实战

chroma 一步步使用 安装 # 安装chromadb pip install chromadb,sentence_transformers# 不启动服务会出现sock.connect(sa)TimeoutError: timed out chroma run服务启动后&#xff0c;您将看到类似以下输出&#xff1a; 建立连接 部署完成后&#xff0c;需要建立与Chroma服…...

全国各地区经纬度数据(包含省、市、县)

全国各地区经纬度数据&#xff08;包含省、市、县&#xff09; 1、指标&#xff1a;行政区划代码、省份、城市、经度、纬度 2、来源&#xff1a;高德地图 3、用途&#xff1a;可用于空间相关研究 4、下载链接&#xff1a; 全国各地区经纬度数据&#xff08;包含省、市、县…...

记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题

文章目录 前言一、问题记录二、参考帖子三、记录store.db.driverClassName 前言 记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题。 一、问题记录 17:39:23.709 ERROR --- [ionPool-Create-1134013833] com.alibaba.druid.pool.DruidDataSource : …...

【Python 面向对象】

Python 的面向对象编程&#xff08;OOP&#xff09;通过类&#xff08;Class&#xff09;和对象&#xff08;Object&#xff09;实现代码结构化&#xff0c;支持封装、继承和多态三大特性。以下是系统化指南&#xff1a; 一、类与对象基础 1. 定义类 class Dog:# 类属性&…...

软考软件评测师——计算机组成与体系结构

目录 计算机寻址方式详解与对比分析 一、立即寻址 二、直接寻址 三、间接寻址 四、寄存器寻址 五、寄存器间接寻址 六、变址寻址 七、基址寻址 八、相对寻址 九、综合对比分析 计算机寻址方式详解与对比分析 一、立即寻址 核心概念 指令操作码后直接携带操作数值&a…...

宝元LNC数控数据采集方式、跨平台采集通讯方案介绍

文章目录 采集效果图通讯方案介绍技术名词解释技术细节小结 采集效果图 通讯方案介绍 老版本宝元&#xff1a;必须走TCP通讯&#xff0c;如LNC568A系列 今天主要介绍新版本的宝元&#xff0c;如采用M6800控制器的5800系列系统等 新版本宝元通讯方式&#xff1a; ①sdk通讯&…...

ZFile与Cpolar技术结合实现远程数据实时访问与集中管理的可行性分析

文章目录 前言1.关于ZFile2.本地部署ZFile3.ZFile本地访问测试4.ZFile的配置5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定ZFile公网地址 前言 在信息爆炸的年代&#xff0c;每个现代人都在数字浪潮中扮演着独特的角色。不论是商务精英、影像创作者还是学术达人&…...

JS手写代码篇---手写 Object.create

JS手写代码篇 在做手写题的时候&#xff0c;我们要思考两个问题 这个代码的作用是什么能够实现的效果是什么样子 1. 手写 Object.create 思路&#xff1a;创造一个对象&#xff0c;类似于Object.create()方法>将obj作为原型 // 手写 Object.create function create (ob…...

homeassistant安装

这里写自定义目录标题 homeassistant安装&#xff08;windows&#xff09;安装virtual boxhaos下载haos安装docker镜像地址更换安装File editor安装hacs安装Xiaomi Miot Auto问题排查 homeassistant安装&#xff08;windows&#xff09; 安装virtual box 百度搜索virtual box…...

Pythonnet - 实现.NET Core和Python进行混合编程

1 安装Pythonnet包 2...

C++23 新特性:ranges::contains 与 ranges::contains_subrange

文章目录 ranges::containsranges::contains_subrange编译器支持总结 C23 标准带来了许多令人兴奋的新特性&#xff0c;其中就包括了 ranges::contains 和 ranges::contains_subrange 这两个算法。这两个算法由提案 P2302R4 提出&#xff0c;它们为 C 程序员提供了更加丰富和…...

(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)

目录 前言&#xff1a; 源代码&#xff1a; product.h product.c fileio.h fileio.c main.c 代码解析&#xff1a; 一、程序结构概述 二、product.c 函数详解 1. 初始化商品列表 Init_products 2. 添加商品 add_product 3. 显示商品 display_products 4. 修改商品 mo…...

Framebuffer显示bmp图片

代码&#xff1a; /* 标准输入输出头文件&#xff0c;提供文件操作和输入输出函数&#xff08;如printf&#xff09;*/ #include <stdio.h>/* 文件控制操作头文件&#xff0c;提供文件打开模式&#xff08;如O_RDWR&#xff09;和文件控制函数 */ #include <fcntl.h&…...

常用负载均衡技术有哪些?不同网络层面上的网络负载均衡技术

前言 负载均衡是一种策略&#xff0c;它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务&#xff0c;从而以较低成本消除网络瓶颈&#xff0c;提高网络的灵活性和可靠性。 在系统管理员发现网络性能不好时&#xff0c;可以通过网络负载均衡来分配资源&#xff0c;以…...

由于复制槽导致wal大量堆积的处理方案

文章目录 环境症状问题原因解决方案 环境 系统平台&#xff1a;N/A 版本&#xff1a;N/A 症状 数据库中的pg_wal占用大量空间&#xff0c;且不删除。 问题原因 复制槽占用早期的wal日志&#xff0c;导致wal归档后无法正常删除。 1. 排查复制槽情况&#xff1a; highgo# …...

用FileCodeBox打造私有文件传输:Ubuntu环境保姆级部署教程!

文章目录 前言1.Docker部署2.简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在数字化浪潮席卷全球的当下&#xff0c;文件传输已成为现代职场的高频需求。当谈及资料交换场景时&#xff0c;许多用户往往抱怨传统工具存在界面复杂、功能卡顿、广告…...

从卡顿到丝滑:JavaScript性能优化实战秘籍

引言 在当今的 Web 开发领域&#xff0c;JavaScript 作为前端开发的核心语言&#xff0c;其性能表现对网页的加载速度、交互响应以及用户体验有着举足轻重的影响。随着 Web 应用的复杂度不断攀升&#xff0c;功能日益丰富&#xff0c;用户对于网页性能的期望也越来越高。从电商…...

win11平台下的docker-desktop中的volume位置问题

因为需要搞个本地的mysql数据库&#xff0c;而且本地安装的程序较多&#xff0c;不想再安mysql了&#xff0c;就想到使用docker来安装。而且因为数据巨大&#xff0c;所以想到直接使用转移data文件夹的方式。 各种查询&#xff0c;而且还使用ai查询&#xff0c;他们都提到&…...

掌握Multi-Agent实践(七):基于AgentScope分布式模式实现多智能体高效协作[并行加速大模型辅助搜索、分布式多用户协同辩论赛]

之前的案例都是运行在单台机器上以单进程形式运行,受限于 Python 的全局解释器锁,实际只能有效利用一个 CPU 的计算资源,并且无法支持多个用户从自己的电脑上接入同一个 Multi-Agent 应用进行交互。为了提高运行效率并支持多用户接入同一个应用中,AgentScope 提供了分布式…...

2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK

Dashboard - 2023 CCPC Henan Provincial Collegiate Programming Contest - Codeforces 过题难度&#xff1a;A H F G B K E 铜奖&#xff1a; 2 339 银奖&#xff1a; 3 318 金奖&#xff1a; 5 523 A: 直接模拟 // Code Start Here int t;cin >> t;while(t-…...

基于基金净值百分位的交易策略

策略来源&#xff1a;睿思量化小程序 基金净值百分位&#xff0c;是衡量当前基金净值在过去一段时间内的相对位置。以近一年为例&#xff0c;若某基金净值百分位为30%&#xff0c;意味着过去一年中有30%的时间基金净值低于当前值&#xff0c;70%的时间高于当前值。这一指标犹如…...

Ubuntu20.04下如何源码编译Carla,使用UE4源码开跑,踩坑集合

一、简介 作为一个从事算法研究的人员,无人驾驶仿真一直是比较重要的一部分,但是现在比较常见的算法验证都是在carla这个开源仿真平台上做的,所以我有二次开发carla的需求,今天就来讲讲编译CARLA。 网上的教材很多,但还是推荐大家看官网教程:Linux build - CARLA Simul…...

Windows 环境下 Docker Desktop 安装 + 汉化

一、WSL2Ubuntu20.04以及Docker Desktop安装 在开发过程中&#xff0c;Docker 是一款极为实用的工具。本教程专为 Windows 用户打造&#xff0c;将全面且细致地讲解 Docker Desktop 的安装与配置步骤&#xff0c;助您迅速入门并熟练掌握。同时&#xff0c;考虑到语言使用习惯&…...

HDMI信号采集器连OBS没有声音的问题

Windows中的设置 windows中可以按客服发来的视频做参考。 视频教程&#xff1a; https://jvod.300hu.com/vod/product/79b234d5-81f0-4255-8680-693de7b4b0d4/715859bc4d83490bb977d8bc0061bd5e.mp4 Linux中的设置 在linux中发现视频不太一样&#xff0c;设置完没有声音。…...

Remote Desktop安卓远程无法使用中文输入法

新版remote desktop包括windows app都无法使用中文输入法 下载旧版才能用8.8.1.56.294 感谢评论区大哥提供的方案...

maven报错 You have to use a classifier to attach supplemental artifacts

完整报错 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:3.3.0:jar (default-jar) on project **: You have to use a classifier to attach supplemental artifacts to the project instead of replacing them. -> [Help 1] 解决办法 修改…...

maven dependencyManagement标签作用

dependencyManagement作用 1. 确保多模块间依赖版本一致 在父 POM 中定义依赖的版本、作用域&#xff08;Scope&#xff09;、排除项&#xff08;Exclusions&#xff09;等&#xff0c;子模块引用这些依赖时无需指定版本 2.灵活覆盖 子模块可以按需覆盖父 POM 中定义的版…...

Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)

一、引言:为什么 Flink 运维监控如此重要? 在实时计算场景中,Flink 作业 724 小时运行,对性能、资源、故障感知、状态变化的实时监控非常关键。没有有效的运维可观测体系: 不知道任务是否在稳定运行 发生问题难以快速定位 无法感知背压、延迟、反压等状态 因此,构建完善…...

计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法

本文所提算法如下&#xff1a; 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN&#xff1a;基于线提议单元的端到端交通线检测 摘要 交通线检测是一项基础且具有挑战性的任务。以往的…...

Spring MVC HttpMessageConverter 的作用是什么?

HttpMessageConverter (HTTP 消息转换器) 是 Spring MVC 框架中一个非常核心的组件&#xff0c;它的主要作用是在 HTTP 请求、响应体与 Java 对象之间进行双向转换。 核心作用&#xff1a; 读取请求体 (Request Body) 到 Java 对象&#xff1a; 当 Controller 方法的参数使用 …...

WebGL 3着色器和GLSL

我们之前提到过着色器和GLSL&#xff0c;但是没有涉及细节&#xff0c;你可能已经对此有所了解&#xff0c; 但以防万一&#xff0c;这里将详细讲解着色器和GLSL。 在工作原理中我们提到&#xff0c;WebGL每次绘制需要两个着色器&#xff0c; 一个顶点着色器和一个片段着色器&…...

Hugging Face 中 LeRobot 使用的入门指南

相关源文件 .github/ISSUE_TEMPLATE/bug-report.yml .github/PULL_REQUEST_TEMPLATE.md README.md examples/1_load_lerobot_dataset.py examples/2_evaluate_pretrained_policy.py examples/3_train_policy.py lerobot/scripts/eval.py lerobot/scripts/train.py 本页面提供 …...

从零开始学习three.js(18):一文详解three.js中的着色器Shader

在WebGL和Three.js的3D图形渲染中&#xff0c;着色器&#xff08;Shader&#xff09; 是实现复杂视觉效果的核心工具。通过编写自定义的着色器代码&#xff0c;开发者可以直接操作GPU&#xff0c;实现从基础颜色渲染到动态光照、粒子效果等高级图形技术。本文将深入解析Three.j…...

Trae - 国人Cursor的免费平替产品

前情提要&#xff1a;Cursor-零基础使用flutter完成贪吃蛇游戏-迄今为止世上最牛的AI编辑工具&#xff0c;不需要程序员也可以编程 Cursor 不是我的最佳选择 Cursor 是基于 VSCode 进化而来&#xff0c;虽然好用&#xff0c;但总结下来有几点点是我有所顾虑的。 第一&#x…...

【PmHub后端篇】PmHub中Seata分布式事务保障任务审批状态一致性

在分布式系统中&#xff0c;事务管理是保证数据一致性的关键。本文将深入探讨在PmHub系统中&#xff0c;如何利用Seata分布式事务来保证任务审批状态的一致性。分布式事务在面试中是常见的考点&#xff0c;网上教程多偏理论&#xff0c;而实际项目中的应用更为关键。 1 事务基…...

2025年长三角高校数模竞赛B题Q1-Q3详细求解与Q4详细分析

B题 空气源热泵供暖的温度预测 问题背景 空气源热泵是一种与中央空调类似的设备&#xff0c;其结构主要由压缩主机、热交换 器以及末端构成&#xff0c;依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载&#xff0c;调节潜力巨大。工作时通过水循环系统将…...

插槽(Slot)的使用方法

插槽是Vue.js中一个强大的功能&#xff0c;允许你在组件中预留位置&#xff0c;让父组件可以插入自定义内容。以下是插槽的主要使用方法&#xff1a; 基本插槽 <!-- 子组件 ChildComponent.vue --> <template><div><h2>子组件标题</h2><slo…...

Milvus Docker 部署教程

1. 环境准备 确保您的系统已安装&#xff1a; DockerDocker ComposePython (用于运行客户端代码) 2. 项目结构 创建项目目录并设置以下文件&#xff1a; milvus-docker/ ├── docker-compose.yml ├── main.py3. 配置文件 docker-compose.yml version: 3.5services:…...

Vue 3 中 watch 的使用与深入理解

在 Vue 3 的 Composition API 中&#xff0c;watch 是一个非常强大的工具&#xff0c;用于监听响应式数据的变化并做出相应的处理。本文将通过一段实际代码来深入解析 watch 的行为和使用技巧。 &#x1f9e9; 示例代码回顾 import { reactive, watch } from vueconst state …...

嵌入式学习笔记 D21:双向链表的基本操作

双向链表的定义与创建双向链表的插入双向链表的查找双向链表的修改双向链表的删除双向链表的逆序MakeFile工具使用 一、双向链表的定义与创建 1.双向链表的定义&#xff1a; 双向链表是在单链表的每个结点中&#xff0c;再设置一个指向其前一个结点的指针域。 struct DOUNode…...