上QQ阅读APP看书,第一时间看更新
1.11 通过权重混合多个行为
混合(blending)技术可以把多个行为搭配起来使用,而不用每次在需要新的混合型agent时创建新的脚本。
这是本章中最强大的技术之一,因为功能强大且实现成本低,这可能是使用最广的行为混合(behavior-blending)途径。
准备工作
我们必须添加一个新成员变量weight到AgentBehaviour类中,在该示例中最好给它赋一个默认值1.0f。除此之外,还应该重构Update函数,以便把weight作为一个参数放进Agent类的SetSteering函数。总的说来,新的AgentBehaviour类应该是这样的:
操作步骤
我们只需要改变Agent类的SetSteering函数的签名及定义:
运行原理
权重值用于放大steering行为的结果,并且被添加到了主steering结构中。
延伸阅读
权重值的和并不需要是1.0f,weight参数作为参考,用于定义steering行为与其他参数的相关性。
其他参考
在本章中,有一个避开墙体的示例就是用权重混合实现的。