Appearance
镜面道具
系统概览
镜面反射道具:直接在场景中放置竖直平面 + MirrorTexture 反射,独立于 PlanarReflection 引擎。最初为调试反射问题而创建(ADR-128),现已升级为常态化场景道具。反射列表包含场景全部 mesh,并通过 onNewMeshAddedObservable / onMeshRemovedObservable 自动刷新。镜面 mesh 挂 transformKind='mirror' metadata 且 isPickable=true,接入场景拖拽模式(ADR-171):点击镜面附加 Gizmo,位置/水平旋转可实时拖拽,拖拽结束经 adapter 回写模块参数。
核心职责
mirror-debug.ts— 镜面创建/销毁/开关/参数调整/信息查询。
对外 API(节选)
createMirror()— 创建镜面平面 + MirrorTexture,设置反射列表与场景网格增删观察者。disposeMirror()— 销毁镜面及其观察者。isMirrorActive()— 查询镜面是否激活。toggleMirror()— 切换镜面开关,返回新状态。updateMirrorClearColor()— 根据当前天空模式(color 模式用 scene.clearColor,其他用透明黑)同步 RT clearColor。refreshMirrorRenderList()— 刷新反射列表(模型加载/卸载后调用)。setMirrorSize(width, height)— 设置镜面尺寸(需重建)。setMirrorPosition(x, y, z)— 设置镜面位置。setMirrorRotationY(rad)— 设置镜面水平旋转。setMirrorResolution(res)— 设置反射分辨率(映射到reflectionQuality枚举,需重建)。getMirrorInfo()— 获取镜面完整状态信息。
与其他子系统关系
- 依赖
env-context获取场景引用。 - 分辨率设置通过 env-bridge 的
setEnvState写入reflectionQuality。 - 拖拽接入 transform-adapter(kinds=
['mirror'],position/rotation 轴,capabilities为空);拖拽结束调用setMirrorPosition/setMirrorRotationY回写。