{"id":28712363,"url":"https://github.com/my2233/rhythmcassette_player_2d","last_synced_at":"2025-06-14T23:05:35.141Z","repository":{"id":298908973,"uuid":"1001461433","full_name":"MY2233/RhythmCassette_Player_2D","owner":"MY2233","description":"一个拟态磁带风格的观赏性游戏软件","archived":false,"fork":false,"pushed_at":"2025-06-13T15:11:07.000Z","size":11918,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T15:23:55.729Z","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/MY2233.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-13T15:14:17.000Z","dependencies_parsed_at":"2025-06-13T15:35:02.230Z","dependency_job_id":null,"html_url":"https://github.com/MY2233/RhythmCassette_Player_2D","commit_stats":null,"previous_names":["my2233/cassetteplayer2d"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MY2233/RhythmCassette_Player_2D","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MY2233%2FRhythmCassette_Player_2D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MY2233%2FRhythmCassette_Player_2D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MY2233%2FRhythmCassette_Player_2D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MY2233%2FRhythmCassette_Player_2D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MY2233","download_url":"https://codeload.github.com/MY2233/RhythmCassette_Player_2D/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MY2233%2FRhythmCassette_Player_2D/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259896120,"owners_count":22928330,"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-14T23:05:33.499Z","updated_at":"2025-06-14T23:05:35.126Z","avatar_url":"https://github.com/MY2233.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 律动磁带 (Rhythm Cassette)\n\n\u003e 一款让你“把玩”音乐的、充满复古情怀与物理交互感的个性化数字音乐玩具。\n\n---\n\n## 已知问题名单：\n\n- [ ] Windows端：\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.43f1c1` 或更高版本。\n- **渲染管线:** 项目基于 `Universal Render Pipeline (URP)` 创建。\n\n### 设置步骤\n\n1. 克隆或下载此仓库到本地。\n\n2. 使用 Unity Hub 打开项目。Unity 可能会花费一些时间来重新生成 `Library` 文件夹。\n\n3. 【重要】导入依赖项：\n\n    本项目依赖外部插件来实现跨平台的文件选择功能。请在 Unity 编辑器中，通过 \n\n   ```\n   Assets -\u003e Import Package -\u003e Custom Package...\n   ```\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\n4. **打开主场景:** 在 `Project` 窗口中，找到并打开 `Assets/_Project/Scenes/SetupScene.unity`。这是软件的入口场景。\n\n5. 点击 Unity 编辑器顶部的播放按钮即可在编辑器中运行。\n\n## 核心功能\n\n- **跨平台文件选择：** 支持在 PC 和 Android 设备上选择本地的音频和图片文件。\n- 动态内容加载：\n  - 运行时加载用户选择的音频文件 (`.mp3`, `.wav`, `.ogg`)。\n  - 运行时加载用户选择的图片 (`.png`, `.jpg`)，并将其应用为磁带的自定义壁纸。\n  - 自动提取并显示歌曲名称。\n- 物理交互式播放控制：\n  - 通过拖拽虚拟**唱臂 (Tonearm)** 来控制音乐的播放与暂停，极具仪式感。\n- 实时音频可视化 (Audio Visualizer)：\n  - 唱盘上的律动方块阵列会根据音乐的频谱数据实时跳动。\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%2Fmy2233%2Frhythmcassette_player_2d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmy2233%2Frhythmcassette_player_2d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmy2233%2Frhythmcassette_player_2d/lists"}