用途:在 Decentraland 场景中处理玩家与化身,包括读取位置、资料、外观,挂载物件与触发表情。
主要能力:
- 读取玩家位置与旋转:通过 engine.PlayerEntity 与 Transform.get 读取,读取前需用 Transform.has 检查是否就绪;可结合 Vector3.distance 做距离判定。
- 玩家资料:getPlayer() 返回 name、userId(钱包地址或访客 ID)、isGuest;依赖钱包的功能需先检查 isGuest。
- 场外地址外观:getPlayer(userId) 仅对当前场景内玩家有效;其他地址需请求 https://peer.decentraland.org/lambdas/profile/<wallet-address>,响应为 json.avatars[0].avatar,颜色为 {r,g,b,a} 浮点,需转 Color3 直接传给 AvatarShape 的 skinColor/hairColor/eyeColor。
- 化身挂载:AvatarAttach 配合 AvatarAnchorPointType 挂载装饰物;瞄准敏感物件应 parent 到 engine.CameraEntity(含俯仰),仅需偏航的身体固定物件 parent 到 engine.PlayerEntity。
- 表情:triggerEmote 播放内置表情,triggerSceneEmote 播放自定义表情,文件必须以 _emote.glb 结尾,src 为项目根目录相对路径;stopEmote 可停止。
限制:engine.PlayerEntity 的 Transform 为只读,场景代码修改会被静默忽略;AvatarAttach 要求目标玩家在同一场景;表情需在 scene.json 声明 ALLOW_TO_TRIGGER_AVATAR_EMOTE 权限,且玩家移动会打断表情。
具体收费、价格与平台信息暂未提供。