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

addEvaluator

概述

addEvaluator 方法是 Think JS 库中用于添加自定义评估器的函数。评估器是 Yuka JS 库中重要的组成部分,用于评估实体在游戏世界中的状态及进行决策。

语法

Think.addEvaluator(name, evaluatorFunction);

参数

  • name:字符串类型,表示添加的评估器的名称。
  • evaluatorFunction:函数类型,该函数用于根据实体状态及世界环境进行评估,并返回一个评估值。

返回值

无返回值。

示例

以下示例添加了一个自定义评估器,用于评估实体与敌人的距离:

Think.addEvaluator('distanceToEnemy', function(agent, world) {
  const enemyPosition = world.getEntityByName('enemy').position;
  const distance = agent.position.distanceTo(enemyPosition);
  return distance;
});

以上代码添加了一个名为 distanceToEnemy 的评估器,通过计算实体与世界中名为 enemy 的实体的距离来评估实体状态。在评估实体状态时,函数将实体对象及游戏世界对象作为参数传入评估器函数中。

注意事项

在添加评估器时,需要确保评估器名称的唯一性,否则可能会出现意外结果。评估器的函数要求返回一个评估值,并且不应该对实体或游戏世界状态进行修改。建议评估器的函数体较短,不要过于耗时。