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

dispatch

dispatch()是Yuka js库中的一个方法,用于派发消息给所有已注册的监听器。

语法

MessageDispatcher.dispatch( message );

参数

  • message:要派发的消息,需为一个Object类型。

    • type:消息类型,通常为字符串类型。

    • data:消息携带的数据,可为任意类型。

返回值

无返回值。

示例

// 注册事件监听器
MessageDispatcher.register( 'hit', ( message ) => {
  console.log( '接收到hit消息,数据为:', message.data );
});

// 派发消息
MessageDispatcher.dispatch({
  type: 'hit',
  data: {
    damage: 50
  }
});

// 输出:
// 接收到hit消息,数据为: { damage: 50 }

在此示例中,我们首先通过register()方法注册了一个名为hit的事件监听器,并指定其处理函数为一个简单的console.log()语句。

然后,我们调用了dispatch()方法,向所有已注册的hit事件监听器派发了一条名为hit,数据为{ damage: 50 }的消息。

由于我们之前已经注册了一个处理函数,故控制台会以console.log()的形式输出对应的消息内容和数据。