{"id":29041862,"url":"https://github.com/echocreek/rhythmcassette_player_2d","last_synced_at":"2026-05-16T18:03:01.791Z","repository":{"id":298908973,"uuid":"1001461433","full_name":"EchoCreek/RhythmCassette_Player_2D","owner":"EchoCreek","description":"一个拟态磁带风格的观赏性游戏软件","archived":false,"fork":false,"pushed_at":"2025-06-23T14:07:05.000Z","size":12249,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-24T07:32:02.910Z","etag":null,"topics":["audio-visualizer","digital-toy","game","music-player","unity","unity2d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EchoCreek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T12:23:14.000Z","updated_at":"2025-06-23T14:07:09.000Z","dependencies_parsed_at":"2025-06-24T07:42:12.681Z","dependency_job_id":null,"html_url":"https://github.com/EchoCreek/RhythmCassette_Player_2D","commit_stats":null,"previous_names":["my2233/cassetteplayer2d","echocreek/rhythmcassette_player_2d"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/EchoCreek/RhythmCassette_Player_2D","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EchoCreek%2FRhythmCassette_Player_2D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EchoCreek%2FRhythmCassette_Player_2D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EchoCreek%2FRhythmCassette_Player_2D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EchoCreek%2FRhythmCassette_Player_2D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EchoCreek","download_url":"https://codeload.github.com/EchoCreek/RhythmCassette_Player_2D/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EchoCreek%2FRhythmCassette_Player_2D/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262090174,"owners_count":23257124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-visualizer","digital-toy","game","music-player","unity","unity2d"],"created_at":"2025-06-26T15:02:56.627Z","updated_at":"2025-09-18T23:51:14.174Z","avatar_url":"https://github.com/EchoCreek.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 律动磁带 (Rhythm Cassette)\n\n\u003e 一款让你“把玩”音乐的、充满复古情怀与物理交互感的个性化数字音乐玩具。\n\n---\n\n## 已知问题：\n\n- 安卓端：\n  - [ ] 音乐文件名过长可能会影响播放器的正常加载，建议使用简洁名称（如歌曲名）并避免包含特殊符号。\n\n---\n\n## **源码的下载方式**：\n\n使用 `git clone` 命令。请按照以下步骤操作：\n\n1. 确保你的电脑已经安装了 [Git](https://git-scm.com/downloads) 和 [Git LFS](https://git-lfs.github.com/)。\n\n2. 打开终端（命令行工具），运行以下命令：\n\n   ```\n   # 第一步：为你的 Git 启用 LFS 功能 (在电脑上只需执行一次)\n   git lfs install\n   \n   # 第二步：克隆本仓库到你的本地电脑\n   git clone https://github.com/MY2233/RhythmCassette_Player_2D\n   ```\n\n## - \u003cu\u003e不要怀疑，这就是一个音乐摆件\u003c/u\u003e -\n\n- [《律动磁带》操作说明](https://github.com/MY2233/CassettePlayer2D/blob/main/《律动磁带》操作说明.md)\n\n## ✨ 项目预览\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/MY2233/CassettePlayer2D/blob/main/images/%E8%BD%AF%E4%BB%B6%E9%A6%96%E9%A1%B5.png\" width=\"260\"\u003e\n      \u003cbr\u003e\n      \u003cem\u003e选择文件界面\u003c/em\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/MY2233/CassettePlayer2D/blob/main/images/%E6%92%AD%E6%94%BE%E9%A1%B5.png\" width=\"260\"\u003e\n      \u003cbr\u003e\n      \u003cem\u003e播放与搓碟\u003c/em\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/MY2233/CassettePlayer2D/blob/main/images/%E8%BD%AF%E4%BB%B6%E8%BF%90%E8%A1%8C.png\" width=\"260\"\u003e\n      \u003cbr\u003e\n      \u003cem\u003e交互细节\u003c/em\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 🚀 如何使用与运行\n\n### 环境要求\n\n- **Unity 版本:** 推荐使用 `Unity 2022.3.57f1c2` 或更高版本。\n- **渲染管线:** 项目基于 `Universal Render Pipeline (URP)` 创建。\n\n### 引用插件\n\n- Standalone File Browser (PC端):\n\n   用于在 Windows, Mac, Linux 上打开文件选择窗口。\n\n  - [点击这里从 GitHub 下载插件](https://github.com/gkngkc/UnityStandaloneFileBrowser)\n\n- Native File Picker (安卓端):\n\n   用于在安卓设备上调用原生文件选择器。\n\n  - [点击这里从 GitHub 下载插件](https://github.com/yasirkula/UnityNativeFilePicker)\n  \n- UniWindowController (PC端):\n  用于在Windows，Mac，Linux上实现无边框效果。\n\n  - [点击这里从 GitHub 下载插件](https://github.com/kirurobo/UniWindowController)\n\n## 核心功能\n\n- **跨平台文件选择：** 支持在 PC 和 Android 设备上选择本地的音频和图片文件。\n- 动态内容加载：\n  - 运行时加载用户选择的音频文件 (`.mp3`, `.wav`, `.ogg`)。\n  - 运行时加载用户选择的图片 (`.png`, `.jpg`)，并将其应用为磁带的自定义壁纸。\n  - 自动提取并显示歌曲名称。\n- 物理交互式播放控制：\n  - 通过拖拽虚拟**唱针 (Needle)** 来控制音乐的播放与暂停，极具仪式感。\n- 实时音频可视化 (Audio Visualizer)：\n  - 唱盘上的律动方块阵列会根据音乐的频谱数据实时跳动。\n  - V1.2版本增加了鼓点检测效果，唱盘上的律动方块阵列会跟随音乐的鼓点产生圆形扩散的效果。\n  - 方块颜色、灵敏度、平滑度等均可通过脚本参数调整。\n- 双模式搓碟系统 (Scratching)：\n  - **唱盘搓碟：** 直接在唱盘上拖拽可实现高精度的“搓碟”效果，音高会随拖拽速度实时变化。\n  - **进度条搓碟：** 拖动进度条滑块同样能实现刮擦音效。\n- 多状态播放器内核：\n  - 通过稳健的状态机管理，完美处理了正常播放、滑块拖动、唱盘搓碟等多种模式之间的切换，避免逻辑冲突。\n  - 支持“静默寻址”，即唱针抬起时仍可调整进度，放下后从新位置播放。\n- 丰富的视觉细节：\n  - 磁带轮会随音乐播放而旋转。\n  - 唱盘在播放时会缓慢自转。\n  - 通过自定义 Shader 为部分 UI（如音量旋钮）添加了不受旋转影响的全局光照和高光效果（这个没学会，暂时加不了）。\n- 双场景架构：\n  - **SetupScene：** 清晰的文件选择入口。\n  - **PlayerScene：** 核心交互与播放界面。\n\n## 🤖 AI 协助说明\n\n本项目在开发过程，尤其在**脚本编写、复杂逻辑实现（如搓碟算法）、问题调试和方案设计**中，得到了 Google AI 助手 **Gemini** 的大量协助。\n\n## 📄 许可证 (License)\n\n本项目采用 **MIT 许可证**。\n\n这意味着你可以自由地使用、复制、修改、合并、出版、分发、再授权及贩售本软件的副本。你只需要在你的项目中包含原始的版权和许可声明即可。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechocreek%2Frhythmcassette_player_2d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechocreek%2Frhythmcassette_player_2d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechocreek%2Frhythmcassette_player_2d/lists"}