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

Inactive

简介

在Yuka中,inactive是一个表示对象处于非活动状态的Goal。当对象的活动状态不满足需求时,将会被激活。

使用方法

import { Goal, inactive } from 'yuka';

class MyObject {
  constructor() {
    this.goal = new Goal( inactive );
  }

  update( timeDelta ) {
    // 更新对象活动状态
    const isActive = ...;
    // 将活动状态传递给Goal
    this.goal.status = isActive;

    // 执行目标
    this.goal.execute( this, timeDelta );
  }
}

在使用中,首先需要通过inactive导入inactive目标,并将其作为参数创建Goal对象。然后,在每次更新对象时,将当前对象的活动状态传递给Goalstatus属性,并调用execute()方法执行目标。

API

构造函数

inactive

inactive是一个函数,用于创建一个表示对象处于非活动状态的目标。该函数无需任何参数。

实例

status

status表示当前对象的活动状态,是一个boolean类型的值。被设置为true表示对象处于活动状态,被设置为false表示对象处于非活动状态。

execute( owner, timeDelta )

execute()方法用于执行目标。owner表示当前Goal所属的对象,timeDelta表示从上一帧到当前帧之间的时间差。如果statusfalse,则会立即激活该目标并执行对应的行为。

示例

该示例中,创建了一个MyObject类,其实例可以通过isActive属性判断当前是否处于活动状态。创建了一个inactive目标,并在每次更新中根据活动状态执行目标。

import { Goal, inactive } from 'yuka';

class MyObject {
  constructor() {
    this.isActive = false;
    this.goal = new Goal( inactive );
  }

  update( timeDelta ) {
    // 可以根据实际需求设置 isActive 的值
    const isActive = this.isActive;
    this.goal.status = isActive;

    this.goal.execute( this, timeDelta );
  }
}

const myObject = new MyObject();
myObject.isActive = false; // 设置为非活动状态
myObject.update(); // 立即激活并执行目标