Appearance
点击与互动
属性
enableInteract
默认值:false
是否允许实体进行互动。如果允许互动,走进互动范围之内,实体身上将会出现互动提示。
定义于 #L10932
interactRadiu
默认值:16
实体互动范围。数值越小,则需要靠近实体才会出现互动提示。
范围有多个可互动实体,按下键盘'['或']'键,切换互动目标。
定义于 #L10947
interactHint
默认值:无
进入实体互动范围时,实体身上出现的提示文本。
定义于 #L10942
interactColor
默认值:GameRGBColor(1, 1, 1)
进入实体互动范围时,提示文本的颜色。
定义于 #L10937
点击查看示例代码
javascript
// 先在场景中放置一个名称为 NPC 的实体。
const npc = world.querySelector('#NPC');
npc.enableInteract = true; // 允许进行互动
npc.interactRadius = 16; // 实体的互动范围
npc.interactHint = npc.id; // 互动提示框显示实体的名称
npc.interactColor = new GameRGBColor(1,0,1); // 互动提示的文字颜色
// 玩家与实体进行交互时触发
npc.onInteract(async({entity}) => {
const result = await entity.player.dialog({
type: GameDialogType.TEXT, // 对话框的类型,TEXT是文本框。
title: npc.id, // 对话框标题为NPC名字,表示正在说话的是NPC
lookEye: entity, // 将相机放在玩家位置
lookTarget: npc, // 相机镜interactHint头对准NPC
content: `你好,${entity.player.name},很高兴认识你。`,
});
});
方法
say()
让实体说话。
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
message | 是 | string | 说话的内容 |
定义于 #L10636
点击查看示例代码
javascript
// 创建一个实体并让它每秒说一句话
const e = world.createEntity({
position: [64, 9, 64],
})
setInterval(() => {
e.say('hey, im a box. my position is ' + e.position.toString());
}, 1000);
onClick()
当玩家用鼠标点击实体时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到鼠标点击时的处理函数 |
定义于 #L10645
onInteract()
当实体进行互动时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到互动时的处理函数 |
定义于 #L10687
onEntityContact()
当实体触碰另一个实体时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到碰到另外的实体的处理函数 |
定义于 #L10651
onEntitySeparate()
当实体停止触碰另一个实体时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到停止碰到另外的实体的处理函数 |
定义于 #L10657
onFluidEnter()
当实体进入液体时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到进入液体的实体的处理函数 |
定义于 #L10675
onFluidLeave()
当实体离开液体时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到离开液体的实体的处理函数 |
定义于 #L10681
onVoxelContact()
当实体触碰方块时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到触碰方块的实体的处理函数 |
定义于 #L10663
onVoxelSeparate()
当实体停止触碰方块时触发
输入参数
参数 | 必填 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
handler | 是 | function | 监听到停止触碰方块的实体的处理函数 |
定义于 #L10669
接口
GameEntityContactEvent
当两个实体碰撞时触发的事件
参数 | 类型 | 说明 |
---|---|---|
entity | GameEntity | 碰撞中的第一个实体 |
other | GameEntity | 碰撞中的第二个实体 |
axis | GameVector3 | 碰撞的分离轴,也就是碰撞后物体弹飞的方向 |
tick | number | 两个实体碰撞的时间 |
force | GameVector3 | 碰撞所产生的力 |
定义于 #L12673
GameFluidContactEvent
当实体进入或离开液体时触发的事件
参数 | 类型 | 说明 |
---|---|---|
entity | GameEntity | 触碰液体的实体 |
voxel | number | 液体方块id |
tick | number | 实体进入或离开液体的时间 |
定义于 #L12799
GameVoxelContactEvent
当实体触碰方块时触发的事件
参数 | 类型 | 说明 |
---|---|---|
entity | GameEntity | 触碰到方块的实体 |
voxel | number | 液体方块id |
tick | number | 实体触碰方块的时间 |
axis | GameVector3 | 触碰的分离轴,也就是触碰后物体弹飞的方向 |
force | GameVector3 | 碰撞力 |
voxel | number | 被触碰的方块id |
x | number | 被触碰方块的x坐标 |
y | number | 被触碰方块的y坐标 |
z | number | 被触碰方块的z坐标 |
定义于 #L12724