Files
main_plugin_farm/docs/13-insect-coordinates-deferred.md
T
2026-10-19 17:25:25 +08:00

67 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 虫子坐标与资源
状态:2026-10-19 用户已授权接入。已从下载的主场景包提取虫子
38 帧及公共种子、枯萎图,共 40 张图片,保存于
`src/farm_render/source_assets`。manifest 保留源 URL、文件哈希、
原图尺寸及统一位置,不保存网页作物 ID。正式静态渲染按虫序稳定选帧,
资源导出脚本将全部帧打包;核心虫害规则见 `16-pest-mechanics.md`。
## 新确认的普通 WebGL 绘制规则
`WebGLMainSceneLandController.lua` 第 279~282 行定义:
```text
PestPos = [(-26, 13), (-5, 42), (24, 24)]
```
第 320~330 行按照 `landData.pest` 数量创建 `mainscene#Pest`,
以 `PestPos[i]` 设置虫子对象的 `localPosition`。
父节点是 `LandsPestAndWeedContent/LandN/PestAndWeedContent`;
对应土地父容器与土地矩形中心对齐。Unity 坐标 x 向右、y 向上。
普通控制器在 step < 6 时显示虫草;上述坐标与作物种类无关。
主场景包存在 `land/webgl/pest.prefab`,其根节点为 Pest,
矩形尺寸 22 × 30,pivot=(0.5,0.5),localScale=(1,1,1),
带 Image 与 Animator;初始 Image 引用精灵 pest1。
预制体初始位置会被运行时的 PestPos 覆盖,不能当作最终位置使用。
若使用原版单位并设统一场景倍率为 s,地块中心是 (Cx,Cy),
虫子对应坐标为 (u,v),则输出画布中的虫子矩形左上角是:
```text
left = Cx + u × s - 22 × s / 2
top = Cy - v × s - 30 × s / 2
```
这是预制体矩形定位;38 帧完整画布均为 44×60,显示尺寸为 22×30。
动画包的采样率为 24,开启循环;本次聊天图片输出不播放动画。
虫子不应套用作物的 0.75 缩放,需遵循其自身预制体尺寸。
已搜索 Lua 包内 2178 个 TextAsset:未发现 `.insect` 或
`["insect"]` 的直接字段读取;普通及时间农场控制器存在 PestPos。
这不能证明 C# 或其他未分析路径从未使用 insect 字段,
但已确认普通 WebGL 控制器本身采用上述固定位置。
## 已保存的证据
原始数据保留在 `captures/qq-farm-2026-10-19/crops.json` 的 `insect` 字段。
这是离线捕获文件,不进入业务数据库,不引入网页作物 ID。
草莓原始值:
```text
0,0,0,0,0,0|50,10,65,-30,110,-2|50,10,65,-30,110,-2|0,0,0,0,0,0
```
字符串包含 4 组数据;每组 6 个数字,可按 3 对坐标进行语法解析。
组与阶段的关系、全零的含义、坐标原点和缩放方式均未核验。
不能直接将这 4 组映射为本地 6 个生长阶段,也不能当作作物位置。
## 剩余验证事项
1. 如需动画消息,另做动画编码、平台能力和上传验证。
2. 网页虫子实际画面与本地绘制对照仍未进行在线像素级验收。
3. 如需使用旧 insect 字段,另查其消费者,不能覆盖已确认的普通 WebGL 规则。
绘制层读取渲染配置,不污染交易状态,不引入网页作物 ID。