场景快照
场景快照用于保存 Unity VR 场景中动态对象的位置、旋转和缩放数据(Transform),以便在需要时还原场景状态。
objects_data 结构说明:
{ "snapshots": [ { "uid": "对象唯一ID(string)", "prefab_name": "预制体名(string)", "pos": [x, y, z], "rot": [x, y, z, w], "scale": [x, y, z] } ]}将当前场景中动态对象的 Transform 数据保存为一个快照记录。
| 项目 | 内容 |
|---|---|
| Method | POST |
| URL | https://devapi.fengshengshou.com/api/gm/snapshot/save |
| 鉴权 | 是,Bearer Token |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seed_code | string | 是 | 目标房间编号 |
| user_id | int | 是 | 操作用户 ID |
| snapshot_name | string | 否 | 快照名称,最长 128 字符;为空时自动生成,格式 YYYYMMDDHHmmss_XXXX |
| objects_data | object | 是 | 场景对象数据,结构见上方说明 |
curl -X POST "https://devapi.fengshengshou.com/api/gm/snapshot/save" \ -H "Authorization: Bearer your_token_here" \ -H "Content-Type: application/json" \ -d '{ "seed_code": "9Q6JZ6", "user_id": 10001, "snapshot_name": "第一关初始状态", "objects_data": { "snapshots": [ { "uid": "obj_001", "prefab_name": "Crate_01", "pos": [1.5, 0.0, 3.2], "rot": [0.0, 0.0, 0.0, 1.0], "scale": [1.0, 1.0, 1.0] } ] } }'| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,0 表示成功 |
| message | string | 固定为 保存成功 |
| data.snapshot_id | int | 快照 ID |
| data.snapshot_name | string | 快照名称(自动生成时返回生成的名称) |
{ "code": 0, "message": "保存成功", "data": { "snapshot_id": 301, "snapshot_name": "第一关初始状态" }}{ "code": 404, "message": "房间不存在或已删除", "data": null}查询快照列表
Section titled “查询快照列表”获取指定房间下的所有快照列表,按创建时间倒序排列。列表不返回 objects_data(数据量较大),如需读取完整数据请调用「读取快照数据」接口。
| 项目 | 内容 |
|---|---|
| Method | GET |
| URL | https://devapi.fengshengshou.com/api/gm/seed/snapshots |
| 鉴权 | 是,Bearer Token |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seed_code | string | 是 | Query 参数,房间唯一编号 |
curl -X GET "https://devapi.fengshengshou.com/api/gm/seed/snapshots?seed_code=9Q6JZ6" \ -H "Authorization: Bearer your_token_here"| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,0 表示成功 |
| message | string | 提示信息 |
| data.list | array | 快照列表 |
| data.list[].snapshot_id | int | 快照 ID |
| data.list[].snapshot_name | string | 快照名称 |
| data.list[].user_id | int | 保存快照的用户 ID |
| data.list[].created_at | string | 创建时间(格式 Y-m-d H:i:s) |
{ "code": 0, "message": "success", "data": { "list": [ { "snapshot_id": 302, "snapshot_name": "20260705103000_ABCD", "user_id": 10001, "created_at": "2026-07-05 10:30:00" }, { "snapshot_id": 301, "snapshot_name": "第一关初始状态", "user_id": 10001, "created_at": "2026-07-05 10:00:00" } ] }}{ "code": 404, "message": "房间不存在或已删除", "data": null}读取快照数据
Section titled “读取快照数据”读取指定快照的完整 objects_data,返回结构与保存时一致,可直接用于还原场景状态。
| 项目 | 内容 |
|---|---|
| Method | GET |
| URL | https://devapi.fengshengshou.com/api/gm/snapshot/data |
| 鉴权 | 是,Bearer Token |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| snapshot_id | int | 是 | Query 参数,快照 ID |
curl -X GET "https://devapi.fengshengshou.com/api/gm/snapshot/data?snapshot_id=301" \ -H "Authorization: Bearer your_token_here"| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,0 表示成功 |
| message | string | 提示信息 |
| data.objects_data | object | 场景对象数据,结构与保存时一致 |
| data.objects_data.snapshots | array | 对象快照列表 |
| data.objects_data.snapshots[].uid | string | 对象唯一 ID |
| data.objects_data.snapshots[].prefab_name | string | 预制体名 |
| data.objects_data.snapshots[].pos | float[3] | 位置,格式 [x, y, z] |
| data.objects_data.snapshots[].rot | float[4] | 旋转四元数,格式 [x, y, z, w] |
| data.objects_data.snapshots[].scale | float[3] | 缩放,格式 [x, y, z] |
{ "code": 0, "message": "success", "data": { "objects_data": { "snapshots": [ { "uid": "obj_001", "prefab_name": "Crate_01", "pos": [1.5, 0.0, 3.2], "rot": [0.0, 0.0, 0.0, 1.0], "scale": [1.0, 1.0, 1.0] } ] } }}{ "code": 404, "message": "快照不存在", "data": null}