概览
minecraft:behavior.drop_item_for 是一个实体组件:写在自定义生物的 components 对象中,或其中某个组件组里。 让生物走到目标身边并在附近丢下物品的 AI 目标,比如猫给睡着的玩家留下礼物。需要导航组件。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
seconds_before_pickup | number | 0 | 丢下的物品多少秒后才能被捡起。范围:0 到 … |
cooldown | number | 0.25 | 此目标再次运行前需要等待的秒数。范围:0 到 … |
drop_item_chance | number | 1 | 生物真正丢下物品的几率。1.0 表示 100%。范围:0 到 1 |
offering_distance | number | 1 | 丢物品时生物喜欢站在离目标多远的地方。范围:0 到 … |
minimum_teleport_distance | number | 2 | 如果目标位置比这个距离更远,生物会传送过去。范围:0 到 … |
max_head_look_at_height | number | 10 | 丢物品时生物抬头能看到的最高点。范围:0 到 … |
target_range | vec3 | [1,1,1] | 搜索目标的区域大小(格)。 |
teleport_offset | vec3 | [0,1,0] | 生物传送时在位置上增加的 X、Y、Z 偏移。 |
time_of_day_range | FloatRange | {"max":1,"min":0} | 此目标可以运行的时间段。0.0 为正午,0.25 为日落,0.5 为午夜,0.75 为日出。 |
loot_table | string | "" | 决定丢下物品的战利品表。 |
on_drop_attempt | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | 生物尝试丢下物品时触发的事件。 |
entity_types | EntityTypes | 无 | 哪些实体可以收到物品。 |
search_range | integer | 0 | 生物在水平方向上寻找目的地的范围(格)。 |
search_height | integer | 1 | 生物在上下方向上寻找目的地的范围(格)。 |
goal_radius | number | 0.5 | 生物需要靠近到多近才算到达,可防止它在目标点附近来回抖动。 |
search_count | integer | 0 | 每刻随机检查的方块数量。0 表示检查范围内的所有方块。范围:0 到 … |
speed_multiplier | number | 1 | 走向目标时的速度倍率。范围:0 到 … |
priority | integer | 0 | 数字越小越先执行:两个目标冲突时,priority 更小的那个胜出。范围:0 到 … |
control_flags | Goal's control flags[] | 无 | 此目标接管哪些身体部分(移动、看向、跳跃),占用相同部分的目标不能同时运行。 |
示例
写在 BP/entities/<name>.json 的 components 对象中(值为默认值或占位值):
BP/entities/<name>.json
{
"minecraft:behavior.drop_item_for": {
"seconds_before_pickup": 0,
"cooldown": 0.25,
"drop_item_chance": 1,
"offering_distance": 1,
"minimum_teleport_distance": 2,
"max_head_look_at_height": 10,
"target_range": [
1,
1,
1
],
"teleport_offset": [
0,
1,
0
]
}
}