用途:在 Decentraland 场景中控制相机行为,包括检测当前视角模式、在指定区域强制第一/第三人称、创建电影级脚本相机,以及读取相机位置与旋转来触发事件。
主要能力:CameraMode 可判断玩家处于第一人称还是第三人称;CameraModeArea 在玩家进入区域时强制指定视角,离开后恢复玩家偏好;VirtualCamera 支持脚本化相机位置、Speed 或 Time 过渡模式以及 lookAtEntity 跟踪目标;通过 engine.CameraEntity 可读取相机 Transform 与 CameraMode。
使用方式:CameraModeArea 与 VirtualCamera 属于静态组件,应写在 main-entities.ts 中;MainCamera 位于保留的 engine.CameraEntity,需在 src/index.ts 运行时激活虚拟相机,例如 MainCamera.createOrReplace(engine.CameraEntity, { virtualCameraEntity: cam })。CameraModeArea.mode 取值:0 第一人称、1 第三人称、2 电影相机。读取相机状态用 Transform.get(engine.CameraEntity),检测模式用 CameraMode.get(engine.CameraEntity)。
适用场景:室内强制第一人称、过场动画、NPC 跟随镜头、基于相机位置的区域触发事件。
限制:相机控制在 VirtualCamera 与 CameraModeArea 之外为只读,不能直接移动玩家相机;同一时间只应激活一个 VirtualCamera;第三人称下相机可能穿墙,需为墙体设置 visibleMeshesCollisionMask 或 invisibleMeshesCollisionMask 为 3(CL_PHYSICS | CL_POINTER);过场动画冻结玩家需结合 InputModifier。