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

target

简介

target 是 Yuka js 库中 Behavior 的一个属性,用于确定该 Behavior 将应用于哪些实体。

语法

target 的语法如下:

behavior.target = 'entitySelector';

其中,behavior 是 Behavior 实例,entitySelector 是一个用于选择实体的字符串,可以是 CSS 选择器、实体 ID 或实体名称。

参数说明

entitySelector 参数支持以下三种类型的取值:

  • 字符串:表示实体的 CSS 选择器,例如 '#player''.enemy'
  • 数值:表示实体的 ID,例如 123
  • 实体名称(字符串或数组):表示实体具有指定名称(或一组名称),例如 'player'['enemy1', 'enemy2']。实体名称可以是 Behavior 的第二个参数 options 中指定的名称,也可以是实体自己的名称属性(默认为 'Entity')。

使用示例

import { Behavior } from 'yuka';

// 定义一个 Behavior,选择 ID 为 123 的实体
class MyBehavior extends Behavior {
    constructor() {
        super();
        this.target = 123;
    }
}

// 定义一个实体,ID 为 123
class Enemy {
    constructor() {
        this.id = 123;
    }
}

// 使用 MyBehavior 应用于 Enemy 实体
const enemy = new Enemy();
const behavior = new MyBehavior();
behavior.apply(enemy);
import { Behavior } from 'yuka';

// 定义一个 Behavior,选择名称为 'player' 的实体
class MyBehavior extends Behavior {
    constructor() {
        super();
        this.target = 'player';
    }
}

// 定义一个实体,名称为 'player'
class Player {
    constructor() {
        this.name = 'player';
    }
}

// 使用 MyBehavior 应用于 Player 实体
const player = new Player();
const behavior = new MyBehavior({ owner: player });
behavior.apply(player);