跳转至

bits & bolts

参考

bb_global 全局房间

简单来说, 我们有时需要在房间内放一个类似 controller 的实体, 这种实体不需要 player 接触即可生效, 但是如果我们想要使它一直作用于我们的地图就得每个房间都放一个, 非常麻烦, 这时我们就可以使用 bits & bolts 自带的全局房间的功能

开启 bits & bolts Helper 后, 我们可以新建任意数量, 任意名称以 _bb_global 为前缀的房间, 当我们进入一个新的房间, 全局房间内的实体也会被加载

原理

bits & bolts 在游戏开始时会找到所有名称以 _bb_global 为前缀的房间并记录内部的实体, 当你进入一个新的房间加载完原来房间内的实体后, 它会额外加载之前记录的实体, 就好像这些实体被摆放在每个房间一样

注意

所以我想你应该明白了, 全局房间做的事只是在加载新房间的时候再加载一遍全局房间, 使得全局房间内的实体好像一直存在一样, 而不是真正意义上的不被销毁的一直存在, 所以当你发现全局房间不能使某一个实体生效, 不妨想想这个实体的运作机制是否适用于这个所谓的全局房间的机制呢

警告

bits & bolts 会将全局房间内的实体向左下移动超过 Vector2(1000000f, 1000000f) 个单位, 所以如果此时你想弄个 trigger 覆盖所有房间, 你得在全局房间右上角框出一块超~大的矩形区域才行

Global Room Loader Controller

如果你需要对应的全局房间只在特定房间内加载, 那么可以在对应全局房间内放置该实体, 可以设置如下参数:

  • Flags: flag1, !flag2 表示如果在加载新房间时 flag1 存在且 flag2 不存在则加载该全局房间, 否则不加载, 此项留空表示不考虑 flag 条件
  • Rooms: room1, !room2, room3_* 表示只有当前的房间是 room1 或者 room3_*, 且不是 room2 时才会加载该全局房间, 否则不加载( * 代表通配符, 这里就是表示任意名称以 room3_ 为前缀的房间), 此项留空表示不考虑 room 名字条件
  • Not During Transition: 表示是否在切板的时候加载该全局房间, 勾选了的话就只有在 player 死亡重生的时候才会加载该全局房间