概览
minecraft:behavior.pickup_items 是一个实体组件:写在自定义生物的 components 对象中,或其中某个组件组里。 让生物走到地上的物品旁并捡起来。僵尸、狐狸和猪灵都会用到它。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
stop_if_holding_item | boolean | false | 设为 true 时,如果生物在该物品对应的栏位已经拿着东西,就不会捡起它。 |
speed_multiplier | number | 1 | 这个目标运行时让生物加速或减速:1 为正常速度。 |
track_target | boolean | false | 设为 true 时,只要物品仍然有效,生物就会一直追着它。 |
max_dist | integer | 1 | 生物寻找物品的最远距离。 |
search_height | integer | 1 | 生物在上下方向上寻找物品的范围。 |
goal_radius | number | 0.5 | 生物需要靠近到多近才算到达。留一点余地可以避免它在原地来回抖动。 |
pickup_based_on_chance | boolean | false | 设为 true 时,会有一定随机几率(取决于难度)让生物无法捡起物品。 |
can_pickup_any_item | boolean | false | 设为 true 时,生物可以捡起任何物品,而不只是它能用的物品。 |
cooldown_after_being_attacked | integer | 0 | 被击中后生物不捡物品的秒数。 |
can_pickup_to_hand_or_equipment | boolean | true | 设为 true 时,物品可以放进生物的手部或盔甲栏位。 |
pickup_same_items_as_in_hand | boolean | false | 设为 true 时,生物只捡与手中物品相同的物品。 |
on_pickup_item_start | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | 生物开始走向物品时触发的事件。 |
on_pickup_item_end | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | 生物捡起物品或放弃时触发的事件。 |
excluded_items | Item Descriptor[] | 无 | 这个生物永远不会捡起的物品。 |
priority | integer | 0 | 多个目标同时想运行时决定谁优先:数字越小越先运行。范围:0 到 … |
control_flags | Goal's control flags[] | 无 | 列出这个目标要控制的身体部分(比如移动、看向或跳跃),这样需要同一部分的目标就不会同时运行。 |
示例
写在 BP/entities/<name>.json 的 components 对象中(值为默认值或占位值):
BP/entities/<name>.json
{
"minecraft:behavior.pickup_items": {
"stop_if_holding_item": false,
"speed_multiplier": 1,
"track_target": false,
"max_dist": 1,
"search_height": 1,
"goal_radius": 0.5,
"pickup_based_on_chance": false,
"can_pickup_any_item": false
}
}