概览
minecraft:looked_at 是一个实体组件:写在自定义生物的 components 对象中,或其中某个组件组里。 当另一个实体(通常是玩家)直视这个实体时触发事件。末影人就用它在被盯着看时发怒。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
field_of_view | Decimal | "26" | 用来判断是否有人在看的视锥宽度,单位为度。 |
filters | Minecraft Filter | 无 | 哪些实体会被当作可能的观看者来检查。 |
find_players_only | Boolean | "false" | 只检查通过过滤器的最近玩家。 |
line_of_sight_obstruction_type | String | "collision" | 哪种方块形状会遮挡视线:"outline"、"collision" 或 "collision_for_camera"。 |
look_at_locations | List | 无 | 实体身上要测试的点;至少有一个可见才算。 |
looked_at_cooldown | Range [a, b] | "[0, 0]" | 被看到后再次检查前的随机等待秒数。 |
looked_at_event | String | 无 | 有人看着实体时触发的事件。 |
min_looked_at_duration | Decimal | "0" | 对方必须持续看多少秒才算数。 |
not_looked_at_event | String | 无 | 没人看着实体时触发的事件。 |
scale_fov_by_distance | Boolean | "true" | 观看者越远视锥越窄,使它在实体处的宽度大致不变。 |
search_radius | Decimal | "10" | 搜索观看者的距离(以方块计)。 |
set_target | Boolean | "once_and_stop_scanning" | 观看者是否成为攻击目标:"never"、"once_and_stop_scanning" 或 "once_and_keep_scanning"。 |
示例
写在 BP/entities/<name>.json 的 components 对象中(值为默认值或占位值):
BP/entities/<name>.json
{
"minecraft:looked_at": {
"field_of_view": "26",
"filters": {},
"find_players_only": "false",
"line_of_sight_obstruction_type": "collision",
"look_at_locations": {},
"looked_at_cooldown": "[0, 0]",
"looked_at_event": "",
"min_looked_at_duration": "0"
}
}