概览
minecraft:behavior.explore_outskirts 是一个实体组件:写在自定义生物的 components 对象中,或其中某个组件组里。 把生物送到村庄边缘并让它在那里稍微闲逛的 AI 目标。需要 minecraft:dweller 和导航组件。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
next_xz | integer | 5 | 下一个闲逛点在水平方向上距当前点的最远距离。 |
next_y | integer | 3 | 下一个闲逛点在上下方向上距当前点的最远距离。 |
min_wait_time | number | 3 | 选择新闲逛点前的最短等待秒数。 |
max_wait_time | number | 0 | 选择新闲逛点前的最长等待秒数。 |
max_travel_time | number | 60 | 生物放弃前尝试到达村庄边缘的秒数。 |
speed_multiplier | number | 1 | 探索时的速度倍率。1.0 为正常速度。 |
explore_dist | number | 5 | 生物可以越过村庄边界多少格。 |
min_perimeter | number | 1 | 村庄周长至少要达到这个值,此目标才会运行。 |
min_dist_from_target | number | 2.25 | 生物需要靠近到多近才算到达。 |
timer_ratio | number | 2 | 随机等待时间会除以这个值,数值越大生物越快继续移动。 |
dist_from_boundary | vec3 | [5,0,5] | 生物需要离村庄边界多近才会开始探索。 |
priority | integer | 0 | 数字越小越先执行:两个目标冲突时,priority 更小的那个胜出。范围:0 到 … |
control_flags | Goal's control flags[] | 无 | 此目标接管哪些身体部分(移动、看向、跳跃),占用相同部分的目标不能同时运行。 |
示例
写在 BP/entities/<name>.json 的 components 对象中(值为默认值或占位值):
BP/entities/<name>.json
{
"minecraft:behavior.explore_outskirts": {
"next_xz": 5,
"next_y": 3,
"min_wait_time": 3,
"max_wait_time": 0,
"max_travel_time": 60,
"speed_multiplier": 1,
"explore_dist": 5,
"min_perimeter": 1
}
}