🚀 春季促销开始! 🚀 不要错过以7折优惠购买我所有系统的机会! 

点击购买

小队系统

avatar`
Yuewu(罗传月武)
Updated: Apr 16, 2025

小队系统组件

给任意类型的Actor加入一个SquadComponent,它就具备了队伍管理的能力。

一个小队可以是具备实体的,比如

  1. 某个精英怪挂载了Squad组件,并带领一群小怪。
  2. 某个玩家角色挂载了Squad组件,并带群一群同伴。

在这种情况下,精英怪和玩家是小队的Leader,小队会以它为中心,且有自己的行为。Leader死亡,整个小队也销毁了。

一个小队也可以是不具备实体的(虚拟小队),比如:

  1. 一个空Actor只挂载了Squad组件

在这种情况下,此Actor会将自己Attach到小队的LeaderActor上,小队本身并没有实体和行为。

推荐使用虚拟小队,这样的好处有如下几点:

  1. 小队的Leader可以动态改变,如果Leader死亡,会在小队剩余成员中选择合适的新Leader,如果没有,小队会销毁。
  2. 动态小队变得可行,比如某个角色有一个技能叫“组队”,会搜寻附近未加入小队的单位动态组成一个新的小队。

小队单位组件

给任意类型的Actor加入一个UnitComponent,它就具备了加入/离开小队的能力。

自动生成小队成员

除了在游戏运行时,动态地为小队添加成员。

你也可以在小队系统组件中,定义默认要生成的小队单位及其数量,并指定默认的命令。

动态小队组成

目前GAIS没有内置的动态组队机制,这里仅仅提供一些思路,毕竟什么样的单位可以组成什么样的小队,在不同的游戏中,其规则会非常不同。

正如之前所说,小队可以是任意类型的Actor,这就意味着,你可以不需要一开始定义好一个小队,而是在游戏运行时,在一定的物理范围内,获取一群相似的单位,并进行动态组队。这会让游戏变得更加动态。

举例:

三个近战士兵,和两个弓箭手,可以组成一个小队,这个小队拥有一个两排槽点的阵型,第一排放置近战士兵,第二排放置弓箭手。当小队结成后,由小队AI控制队伍中各单位的AI行为。