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

MovingEntity Manager

MovingEntity Manager 是 Yuka.js 库中用于管理 MovingEntity 实体的模块。该模块提供了一系列方法,用于添加、删除并追踪实体。

添加实体

您可以使用 add(entity) 方法添加实体到 MovingEntity Manager 中。以下是该方法的参数:

  • entity:要添加到 MovingEntity Manager 中的实体。
const movingEntity = new YUKA.MovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

删除实体

您可以使用 remove(entity) 方法从 MovingEntity Manager 中删除实体。以下是该方法的参数:

  • entity:要从 MovingEntity Manager 中删除的实体。
const movingEntity = new YUKA.MovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

manager.remove(movingEntity);

更新实体

您可以使用 update(deltaTime) 方法更新 MovingEntity Manager 中的所有实体。对于每个实体,该方法将调用其 update(deltaTime) 方法,以便更新其状态。

以下是该方法的参数:

  • deltaTime:以秒为单位的时间间隔。
const movingEntity = new YUKA.MovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

function animate() {
    requestAnimationFrame(animate);

    manager.update(1 / 60);
}

获取实体

您可以使用 getEntities() 方法获取 MovingEntity Manager 中的所有实体。该方法将返回一个包含所有实体的数组。

const movingEntity = new YUKA.MovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

console.log(manager.getEntities()); // [MovingEntity]

获取特定类型的实体

您可以使用 getEntitiesByType(type) 方法获取 MovingEntity Manager 中特定类型的实体。以下是该方法的参数:

  • type:要获取的实体类型。
class MyMovingEntity extends YUKA.MovingEntity {}

const movingEntity = new MyMovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

console.log(manager.getEntitiesByType(MyMovingEntity)); // [MyMovingEntity]

获取实体数量

您可以使用 getEntityCount() 方法获取 MovingEntity Manager 中实体的数量。

const movingEntity = new YUKA.MovingEntity();
const manager = new YUKA.MovingEntityManager();

manager.add(movingEntity);

console.log(manager.getEntityCount()); // 1