SuperAPI AI 工具集

add-interactivity

编程与开发

查看项目

更新于 10-16 05:05

技能介绍

用途:为 Decentraland 场景中的实体添加事件驱动交互,包括点击/悬停、玩家靠近时按键、进入与离开区域、射线检测和全局按键轮询。

主要能力:pointerEventsSystem.onPointerDown/onPointerUp/onPointerHoverEnter/onPointerHoverLeave 处理指针事件;onProximityDown/onProximityUp/onProximityEnter/onProximityLeave 处理不用瞄准的邻近交互;TriggerArea 配合 triggerAreaEventsSystem 检测实体进出区域;raycastSystem 或 Raycast 组件做方向检测;inputSystem 与 PointerLock、PrimaryPointerInfo 读取按键与光标状态。决策树给出各需求对应的 API。

用法要点:交互实体若来自 assets/scene/main.composite,必须用 engine.getEntityOrNullByName 或 engine.getEntitiesByTag 查询,禁止重新 addEntity,且查询须在 main() 或其后调用的函数中执行。指针事件需要实体带 ColliderLayer.CL_POINTER 碰撞体,可用 MeshCollider.setBox 做不可见碰撞体,或在 GltfContainer 上设置 visibleMeshesCollisionMask。"maxDistance" 从化身而非相机测量,默认 10;maxCameraDistance 从相机测量;maxPlayerDistance 已废弃且在同时设置时较大者生效;两者同时设置时取 OR。showFeedback 控制 hoverText 是否显示。切勿在回调内重新注册处理程序,动态改悬停文本应原地修改 PointerEvents 组件。邻近事件须同时满足距离、约 120 度朝向锥和遮挡射线检测,且 Unity 探索器广相为固定 3 米,超过约 3 米的邻近范围可能失效,远距离建议改用 TriggerArea 或指针事件。触发区域体积由 Transform 的位置、旋转与缩放决定,优先使用 TriggerArea 而非逐帧检测或旧版 triggers.addTrigger()。处理程序移除在 SDK 7.28.1+ 修复了无 hoverText 时条目泄漏的问题;7.28.0 及更早版本需注意。

适用场景:门、可收集物、NPC、区域触发提示等场景交互。

限制:部分渲染器行为(如 maxCameraDistance 支持、蒙皮模型可见网格不可点击)资料标注为待验证;动态文本、货币、平台等信息暂未提供。