Steer2 说明教程翻译

这个插件挺小巧挺厉害的,所以忍不住多用了几次,刚接触的时候就将它的说明文档为翻译了一下,虽然这个插件很简单,而且看几个例子就知道怎么回事了,但还是贴出来备份一下吧。其实很多都是按自己的理解来的,还有一些没有理解硬翻的。。。

 

Steer2

Quick Start

要创建一个操纵代理,只要在你的游戏对象上增加”Steering Agent”组件即可。这个组件提供了控制速度、灵敏度来控制你的代理。

ip_image002

  • Max Velocity : 你的代理可以达到的最大速度
  • Mass:代理的质量,决定了你的代理的加速度以及改变方向的速度。如果设为一个很大的值,则会使得代理转弯时很慢但会是一个平滑的角。
  • Friction:代理的摩擦力。当没有一个持续的里作用于它的时候就会慢下来然后停止。
  • Rotate Sprite:是否让游戏对象朝向目标方向。

要给代理添加特定的行为,可以从以下组件中选择。每一个都提供了一个移动行为,并提供了多个可修改的变量。可以给一个代理增加多个行为组件。

  • Seek : 代理会寻找并接近目标
  • Flee: 代理将会逃离目标
  • Pursue:代理将会追赶另一个代理,并会预测目标代理的位置。
  • Evade:代理将会逃离目标代理,并会预测目标代理的位置
  • FllowPath:代理会沿着一串路径点移动
  • Flock : 代理们将会同附近的代理组群

Steering Behaviors

如果一个代理有多个行为,则最后的行为将是这些行为的组合计算获得的。所有的控制行为都有一个”weight”参数。这个参数控制在整个移动中会体现多少细节上的效果。你可以各自控制不同的行为的这个参数来使得最后的行为更为复杂一点。

         Seek(寻找)

ip_image004

  • TargetPoint :目标点

Flee(逃离)

ip_image006

如果目标点在自己的半径范围内则进行逃离

  • Target Point : 要逃离的目标点
  • Flee Radius : 逃离的半径范围
  • Draw Gizmos: 在Editor模式可以看到半径

Arrive(到达)

ip_image008

到达目标点,并在进入目标的半径范围后进行平滑的停止移动。

  • Target Point: 目标
  • Slow Radius: 进入该半径后代理开始慢下来
  • Stop Radius: 进入该半径后代理开始停止
  • Draw Gizmos: 会在Editr模式画出目标点的两个半径的圆

Pursue(追赶,跟踪)

ip_image010

追赶目标代理,并预测目标代理的路径。

  • Target Agent : 目标代理

Evade(逃避)

ip_image012

逃离目标代理,并预测目标代理路径。

  • Target Agent: 要逃离的目标代理
  • Flee Radius: 进入这个半径就开始逃离
  • Draw Gizmos:会在目标代理上绘制Gizmo

Follow Path:

ip_image014

代理会沿着路径点移动,并在最后一个点的时候平稳着陆。

  • Path : 一系列的点
  • Slow Radius: 当下一个点是最后一个点时,代理进入该半径后就开始减速
  • Stop Radius : 当下一个点时最后一个点时,进入该半径就开始停止移动
  • Next Coord Radius: 代理必须进入到这个区域才能开始移动到下一个点
  • Loop: 选中后代理将会循环移动
  • Draw Gizmos:

Flock

ip_image016

这个集群行为是有点复杂的,因为涉及到多个代理,他们会在靠近时聚集在一起并根据给与的参数开始周旋。你可能需要搞乱weight来实现想要的效果。

  • Neighbor Radius: 进入到这个半径内的代理将会尝试聚集,任何代理离开了这个半径将会被忽略。
  • Alignment Weight:组成队列的力的大小。这个力将尝试将多个代理的朝向统一起来。
  • Cohesion Weight:凝聚力大小。这个力将尝试将多个代理拉在一起组成一个group
  • Separation Weight:间隔力。这个力会尝试在代理间分开一段距离,如果有重叠则会停止移动一下。

Building Your Own Behaviors

要实现你自己的控制行为,你可以继承”SteeringBehaviour”来实现。Override GetVelocity()函数来返回你自己的速度。其父类有个公共变量”agent”,保存当前游戏对象。你可以想使用其他变量一样来使用这个”agent”来访问速度。”SteeringAgent.AgentList”维护一个全局代理列表。

你可以看下其他行为的代码实现方式,来参考实现你自己的。

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *