AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

entity1

InterposeBehavior 是Yuka js库中一个被用来改变实体运动方向的类。该类可以实现对实体对象的拦截和重定向行动,以便在需要时追踪或控制实体,以符合各种需求。

构造函数

  • InterposeBehavior( targetEntity, evadeBehavior )
参数名 类型 描述
targetEntity Entity 要追踪的目标实体。需要为Entity类型
evadeBehavior EvadeBehavior 逃避行为对象。需要为EvadeBehavior类型

创建一个实例化的InterposeBehavior对象,需要传入目标实体和逃避行为对象。

方法

  • calculate( entity, delta )
参数名 类型 描述
entity Entity 需要进行方向重定向的实体对象
delta Number 执行单次计算的增量值

此方法用于计算实体对象的目标位置,并更新实体的旋转方向。

属性

  • targetEntity:目标实体对象。

该属性可以被用来访问目标实体对象。

  • evadeBehavior:逃避行为对象。

该属性可以被用来访问当前实例InterposeBehavior的逃避行为对象。

  • arriveBehavior:到达行为对象。

该属性可以被用来访问当前实例InterposeBehavior的到达行为对象。

示例

const yuka = require('yuka');
const InterposeBehavior = yuka.InterposeBehavior;
const Entity = yuka.Entity;
const Vector3 = yuka.Vector3;

class Vehicle extends Entity {
  constructor() {
    super();
    this.velocity = new Vector3();
    
    // 创建一个逃避行为
    const evadeBehavior = new yuka.EvadeBehavior();
    
    // 创建一个实体
    const targetEntity = new Entity();
    
    // 创建InterposeBehavior对象
    const interposeBehavior = new InterposeBehavior( targetEntity, evadeBehavior );
    
    // 设置到达行为和速度
    interposeBehavior.arriveBehavior.active = true;
    this.maxSpeed = 10;
    
    // 添加InterposeBehavior行为对象
    this.steering.add( interposeBehavior );
  }
  
  update( delta ) {
    // 每帧更新位置和旋转
    this.position.add( this.velocity.multiplyScalar( delta ) );
    this.rotation.y = Math.atan2( -this.velocity.z, this.velocity.x );
  }
}

上述代码示例,展示了如何使用InterposeBehavior来创建一个支持拦截和重定向行为的车辆对象。我们首先创建了逃避行为和目标实体,然后使用它们来创建InterposeBehavior对象。接着,我们激活了到达行为和设置了速度。最后,我们在每帧中更新车辆对象的位置和旋转。