
MSCAudioAPI
为模组开发者提供便捷与音频流交互的API,为玩家带来与模组音乐和音效交互的更佳体验。
查看大图描述
MSC Audio API — 为模组开发者提供的库,为 My Summer Car 添加游戏从未有过的功能:完整的音乐和音效播放,并配备智能优先级系统。
游戏没有背景音乐。此模组让其他模组能够随处、以任意方式播放音乐和音效——让它们互不冲突,而是补充氛围:
玩家醒来时听到平静的背景音乐(优先级 0)。他走近车库,那里播放着音响(优先级 1)——背景音乐平滑地减弱,但不会关闭。离开车库后——音乐平滑地恢复。这一切自动发生,模组作者无需编写一行代码。
该库自行决定谁的声音更大,平滑处理淡入淡出,尊重游戏的声音设置,并且不允许模组未经许可压制其他模组的声音。
如果您是玩家——只有当其他模组需要它时才安装此模组(或者您想测试音频模组)。
安装
自动(推荐): 通过 Mod Manager(Vortex/MO2)安装——压缩包具有标准结构。
手动:
- 安装 MSCLoader 1.4.2 或更新版本(如果尚未安装)。
- 从压缩包中将
Mods/文件夹复制到游戏根目录:...\steamapps\common\My Summer Car\ - 最终应得到:
Mods/MSCAudioAPI.dll— 库本身(必需);Mods/References/MSCAudioAPI.dll— 用于编译模组的副本(必需);
- 启动游戏——模组列表中将出现 MSC Audio API。 该库支持 .mp3、.ogg、.wav 格式。
主要功能
面向玩家:
- 模组声音尊重游戏音量(MasterAudio 设置项)——游戏静音也会静音模组
- 无冲突:相同优先级的模组同时播放,更高优先级会柔和地覆盖较低优先级
面向模组开发者——每个音效只需几行代码:
// 背景音乐(2D,优先级 0,循环)
AudioStream music = MscAudio.Play("Assets/MyMod/music.mp3", 0, true);
// 车库里的音响(3D,优先级 1,30 米内可闻)
AudioStream radio = MscAudio.PlayAt("Assets/MyMod/radio.mp3", garagePos, 1, 30f, true);
// 跟随对象的声音(汽车、NPC、物品)
AudioStream engine = MscAudio.PlayFollow("Assets/MyMod/engine.wav", carTransform, 2, 15f, true);
- 3 种播放方式 - 2D(全游戏范围)、3D 定点、3D 绑定对象
- 优先级 −128…127 带平滑淡入淡出(速度可调)- 先进的声音覆盖系统
- Ignore 标志 - 声音播放于一切之上且不影响他人(物品、界面音效)
- 通道(AudioChannel)- 模组的私有命名空间:用单个滑块控制模组所有声音的总音量(带平滑动画),仅停止/暂停自己的声音 - 不影响其他模组
- 播放列表 — 顺序或随机(不重复上一首),适用于 2D/3D/移动声源,支持跳过和平滑停止
- 回调 OnFinished / OnFadedOut - 响应曲目结束和淡出完成
- 平滑停止 Stop(seconds) — 无爆音中断
- 格式:WAV(PCM 8/16/24,float32)、MP3(短文件——完整加载,长文件——流式解码:内存中仅有几秒音频,任意长度曲目)和 OGG(引擎解码器,在内存中保持压缩)
- 流精细调节:音量、优先级、循环、播放位置、速度(pitch)、运行时切换 2D↔3D、可闻半径
- 按名称查找 — 在代码任意位置控制声音,无需保存引用
- 诊断 — 将所有声音状态转储到控制台,以及混音器决策的 verbose 日志模式
- 完整的 XML 文档 — IntelliSense 在 Visual Studio 中直接提示每个签名
需求
- My Summer Car(已在 Steam 最新版本上测试)
- MSCLoader 1.4.2+
- 无需其他:用于 MP3 解码的 NAudio 已随游戏提供(副本包含在 Mods/References/ 中以防缺失)
兼容性:该库不替换游戏文件,不使用 Harmony,运行于 Unity 标准音频引擎之上。对新旧存档同样有效。
文档
面向模组开发者:
- API.md — 完整文档及示例(在压缩包中和本页 Articles 中)
- MSCAudioAPI.xml — 用于 IntelliSense 的 XML 文档:在您的 .csproj 中添加对 Mods/References/MSCAudioAPI.dll 的引用(带
<Private>False</Private>)——环境中将提示全部 40+ 个方法及其描述
您的模组快速入门:
using MSCAudioAPI;
// 模组加载时:
AudioChannel ch = MscAudio.GetChannel("ВашModID"); // 模组的私有通道
ch.Play("Assets/ВашMod/music.mp3", 0, true);
// 之后任意位置:
ch.SetVolume(0.5f, 2f); // 模组所有声音的平滑音量
ch.StopAll(); // 仅停止自己的声音
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。