Skip to content

对话与互动

方法

directMessage()

向玩家直接发送私信

输入参数

参数必填默认值类型说明
messagestring私信内容

定义于 #L11618

点击查看示例代码
javascript
world.onPlayerJoin(({ entity }) => {
  entity.player.directMessage(`${entity.player.name}, 你好。`);
})

dialog()

在游戏中显示一个对话框。

输入参数

参数必填默认值类型说明
configPartial‹GameDialogCall›互动配置

返回值

类型说明
Promise‹GameDialogResponse›异步返回玩家的选择/输入内容

定义于 #L11650

点击查看示例代码
javascript
/* 玩家进入游戏时,弹出一个欢迎对话框 */
world.onPlayerJoin(({entity}) => {
  entity.player.dialog({
    type: GameDialogType.TEXT,
    title: "吉吉喵",
    content: `你好,${entity.player.name},很高兴认识你。`,
  });
})

javascript
// 先在场景中放置一个名称为 NPC 的实体。
const npc = world.querySelector('#npc');
npc.enableInteract = true;
npc.interactHint = npc.id;
npc.interactRadius = 16;

// 玩家与实体进行交互时触发
npc.onInteract(async ({entity}) => {
  const result = await entity.player.dialog({
    type: GameDialogType.SELECT,
    title: npc.id,
    lookTarget:npc,
    content: `${entity.player.name},你想尝试挑战这个游戏吗?`,
    options: ['当然', '下次吧。'],
  }); console.log(`选择了第 index: ${result.index} 个选项: ${result.value}`) // 如果选了第一个选项,也就是'当然'。就会执行特定事件
  if (result.index === 0){
    npc.say(`${result.value}?那就来吧!`);
  }
});

cancelDialogs()

关闭该玩家的所有打开的对话框。

定义于 #L11659


share()

为该玩家显示分享弹窗,并能够自定义分享内容。

输入参数

参数必填默认值类型说明
contentstring分享弹窗的内容,限制长度为40个字以内,超出后截断,并在末尾添加省略号……

自动标签 通过此 API 调用弹出的分享弹框的内容末尾,会自动新起一行添加**#神奇代码岛 #地图**标签,自动添加的内容不计入限制长度内。 编辑模式 编辑模式下,此API弹出的分享弹窗分享的地址是编辑模式的地址。

定义于 #L11736


onChat()

当前玩家发起聊天时调用

输入参数

参数必填默认值类型说明
handlerfunction监听到聊天的处理函数

定义于 #L11623

点击查看示例代码
javascript
entity.player.onChat(({ entity, message }) => {
  // 当玩家发送‘grow’文字的时候放大2倍,当玩家发送‘shrink’文字的时候缩小2倍
  if (entity && entity.isPlayer) {
    if (message === 'grow') {
      entity.player.scale *= 2;
    } else if (message === 'shrink') {
      entity.player.scale /= 2;
    }
    world.say('adjusting scale of ' + entity.player.name + ' to ' + entity.player.scale);
  }
})

接口

GameDialogCall

在游戏中显示一个对话框。

参数类型说明
typeGameDialogType必选,对话框的类型。
contentstring必选,对话框显示的正文内容。支持使用'' 换行。
contentBackgroundColorGameRGBAColor对话框正文窗口的背景颜色。
contentTextColorGameRGBAColor对话框正文字体的颜色。
titlestring必选,对话框显示的标题名称。
titleBackgroundColorGameRGBAColor对话框显示的标题窗口背景颜色。
titleTextColorGameRGBAColor对话框显示的标题字体颜色。
hasArrowboolean如果接下来还有新的对话,在当前对话框中是否显示箭头提示。仅在文本对话框中使用。
confirmTextstring仅在输入对话框使用。确认按钮显示的文本。如果为空,按钮文本默认显示为 '确认 | Confirm'.
optionsstring[]仅在选项对话框中使用。在对话框中提供一些可供玩家选择的对话选项。
placeholderstring使相机镜头朝向指定实体或坐标的位置。
lookTargetGameVector3 | GameEntity使相机镜头朝向指定实体或坐标的位置。
lookTargetOffsetGameVector3如果相机指定了注视目标,可以设置基于目标位置的偏移。
lookUpGameVector3调整相机抬头向量。使画面上下左右颠倒。
lookEyeGameVector3 | GameEntity调整相机的位置。
lookEyeOffsetGameVector3如果相机位置指定了实体,可以设置基于目标位置的偏移。

定义于 #L12149


GameDialogResponse

对话框回应

如果没有完成对话而点击了其他地方,使对话框被取消,则返回 null

如果是文本对话框,回应'success'

如果是选项对话框,回应输入框填写的内容字符串

如果是选项对话框,回应 GameDialogSelectResponse

定义于 #L11325


GameDialogSelectResponse

选项对话框回应

在选项对话框中,玩家点击了按钮,会得到对话框的回应事件。返回被玩家按下的选项信息。

参数类型说明
indexnumber选项编号(从0开始计数)
valuestring选项内容

定义于 #L11321

枚举

GameDialogType

对话框样式类型

属性说明
TEXT文本样式对话框
INPUT输入样式对话框
SELECT选择样式对话框

定义于 #L11316