扫描雷达
以雷达站为圆心,一个 50 度的扇形绕圈扫过,量程圈分三档, 圈内三个目标点用暖色标出。扫描可以暂停在任意角度。
扇区顶点怎么生成
多边形的第一个顶点是圆心,后面是沿弧线均匀采样的 18 个点。
每个采样点的角度等于「当前旋转角减去半宽,再加逐点偏移」,
经度方向用 cos、纬度方向用 sin,
半径换算成度时经度要除以纬度的余弦,否则扇区在东西方向会被拉长。
半径 24 公里换算下来纬度方向约 0.2156 度,经度方向约 0.252 度。 直接给两个方向相同的度数,看上去就是一个被压扁的椭圆。
用 CallbackProperty 驱动旋转
polygon.hierarchy 被包成 CallbackProperty,
每帧按当前时间重新算一遍顶点。暂停时切换到一个冻结的角度值,
动画立即停住,不需要销毁重建实体。
多边形的顶点数只有 19 个,重算成本很低。如果扇区采样到上百个点,
建议改成用 EllipseGraphics 配合旋转贴图,或者把扫描做成
shader 材质,避免每帧三角剖分。
可调参数
| 位置 | 改什么 | 效果 |
|---|---|---|
RADIUS | 24000 改成 60000 | 量程圈与扇区一起放大 |
SWEEP | 50 度改成 120 度 | 扫描带更宽,视觉更慢 |
% 6000 | 改成 2000 | 转速提升三倍 |
[0.33, 0.66, 1.0] | 加一项 0.5 | 距离圈变四档 |
| 扇区材质 alpha | 0.30 改成 0.6 | 扫描带更实,目标点对比下降 |
扇区边缘有锯齿。采样只有 18 段,近距离看弧线是多边形。
把采样数提到 36 以上即可,代价可以忽略。另外扇区贴在椭球面上,
相机压得很低时会和球面发生深度冲突,把 height 抬到 1 到 5 米就能消除。
换成真实雷达数据
真实回波不是一块均匀的扇形,而是按方位角和距离分格的值。做法是把极坐标网格 换算成经纬度小方格,按回波强度给每个格子单独上色,扇区只保留作为「当前扫描角」的指示。 数据量在几千格以上时,用 Primitive 批量提交,不要逐格建 Entity。