{"repo":"Fantety/GDBlive","free":true,"listed":false,"github":"https://github.com/Fantety/GDBlive","clone":"git clone https://github.com/Fantety/GDBlive.git","description":"GDBLive - B站直播开放平台 Godot 插件，让你的 Godot 游戏轻松接入 B站直播互动功能","language":"Rust","stars":17,"topics":["bilibili","bilibili-live","gdextension","godot","godot4","rust"],"license":"MIT","category":"game-templates","readme_excerpt":"GDBLive - B站直播开放平台 Godot 插件 为 Godot 4 打造的 B站直播开放平台插件 让你的 Godot 游戏轻松接入 B站直播互动功能 --- 📖 这是什么？ GDBLive 是一个 Godot 4 插件，让你可以在游戏中接收 B站直播间的实时互动消息 可以用来做什么？ - 🎮 直播互动游戏 - 观众通过弹幕控制游戏角色 - 📊 数据可视化 - 实时展示礼物、SC 等数据 - 🎪 直播间小游戏 - 抽奖、投票、答题等 - 🤖 互动机器人 - 自动回复、数据统计等 --- 🚀 快速开始 第一步：安装插件 1. 从 Releases 下载最新版本 2. 解压到你的 Godot 项目的 addons/ 目录 3. 在 Godot 编辑器中启用插件： 项目 → 项目设置 → 插件 → GDBLive 第二步：获取 API 凭证 1. 访问 B站直播开放平台 2. 注册并创建应用 3. 获取以下信息： - 身份码 （code） - 应用ID （app id） - 密钥ID （access key id） - 密钥 （access key secret） 第三步：编写代码 创建一个脚本，复制以下代码： 第四步：运行测试 1. 运行你的 Godot 项目 2. 在你的直播间发送弹幕 3. 查看 Godot 控制台，应该能看到弹幕消息 --- 📚 API 参考 配置属性 常用方法 开启项目 调用后会触发 start completed 信号，返回场次信息和 WebSocket 连接信息。 关闭项目 连接 WebSocket 从 start completed 信号中获取 ws url 和 auth body 。 断开 WebSocket 启动心跳 每 20 秒自动发送一次心跳，保持连接。 停止心跳 信号 start completed(response json: String) 项目开启完成时触发。 响应数据结构： ws message received(cmd: String, data json: String) 收到 WebSocket 消息时触发。 消息类型（cmd）： - LIVE OPEN PLATFORM DM - 弹幕 - LIVE OPEN PLATFORM SEND GIFT - 礼物 - LIVE OPEN PLATFORM SUPER CHAT - SC - LIVE OPEN PLATFORM GUARD - 上舰 - LIVE OPEN PLATFORM LIKE - 点赞 - LIVE OPEN PLATFORM LIVE START - 离开房间 - LIVE OPEN PLATFORM LIVE END - 结束直播 - LIVE OPEN PLATFORM INTERACTION END - 消息推送结束通知 - LIVE OPEN PLATFORM LIVE START - 开始直播 - LIVE OPEN PLATFORM LIVE ROOM ENTER - 进入直播间 弹幕消息数据结构： 礼物消息数据结构： ws connected() WebSocket 连接成功时触发。 ws disconnected() WebSocket 断开连接时触发。 ws error(error msg: String) WebSocket 发生错误时触发。 --- 💡 使用示例 示例 1：弹幕控制角色移动 示例 2：礼物触发特效 示例 3：SC 显示在屏幕上 完整示例 查看 demo/node 2d","default_branch":null,"files":null,"tree":[],"storefront":"/r/Fantety","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Fantety/GDBlive/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}