calculate
方法通过计算目标物体与当前对象之间的距离和方位,以及速度和时间等因素,返回当前对象应该采取的躲避行为,用于实现 Yuka js 库中的 EvadeBehavior(躲避行为)。
calculate
方法有两个参数:
target
:目标物体(必填),表示当前对象要躲避的物体;
delta
:时间间隔(可选),用于计算当前对象到目标物体的距离。
calculate
方法返回一个对象,其包含以下属性:
linear
:线性加速度向量,通过该向量可以使当前对象躲避目标物体;
angular
:角加速度向量,用于控制当前对象的转向。
const evadeBehavior = new YUKA.EvadeBehavior();
const target = new YUKA.GameEntity();
target.position.set(10, 0, 0);
const delta = 1; // 时间间隔为 1 秒
const steering = evadeBehavior.calculate(target, delta);
entity.steer(steering, delta); // 控制当前对象实施躲避行为
当前对象和目标物体的位置需要通过 position
属性设置,否则 calculate
方法将无法正确计算出躲避行为。同时,当前对象需要具备支持行为的相关属性(如速度、加速度等),否则将无法执行返回的加速度向量。