/** 等距网格常量(独立模块,避免 AppBootstrap ↔ GridCoords 循环依赖) */ export const CELL_PIXEL = 100; /** Unity Player.prefab moveSpeed=1.2、Vehicle.prefab=1,按格子像素等比换算 */ export const UNITY_PLAYER_MOVE_SPEED = 1.2; export const UNITY_VEHICLE_MOVE_SPEED = 1; /** Unity PlayerController 跳上 JumpBlock 时 targetPosition.y += 0.15 */ export const UNITY_JUMP_ARC_OFFSET = 0.15; /** 移动中拾取:步进进度达到该比例且进入道具格后才消失(0–1) */ export const PROP_COLLECT_MOVE_PROGRESS = 0.62; /** 移动中拾取:角色与道具世界距离上限(相对 CELL_PIXEL) */ export const PROP_COLLECT_TOUCH_RADIUS = 0.42; export function scaledJumpArcOffset(): number { return UNITY_JUMP_ARC_OFFSET * CELL_PIXEL; } export function scaledMoveSpeed(unitySpeed: number): number { return unitySpeed * CELL_PIXEL; } /** 与 Unity Web 模板 canvas 一致(Template/index.html 960×600) */ export const DESIGN_WIDTH = 960; export const DESIGN_HEIGHT = 600; /** Unity Main Camera orthographicSize=5 → 半高 500px(世界尺度,不随设计分辨率变) */ export const CAMERA_ORTHO_HALF = 500; export function getHalfCellSize(): { halfW: number; halfH: number } { return { halfW: CELL_PIXEL * 0.5, halfH: CELL_PIXEL * 0.25 }; }