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

uuid

简介

uuid(通用唯一识别码)是一种用于标识数据的128位数字,在Yuka js库中使用Trigger的uuid作为标识符,防止命名冲突并保证唯一性。

语法

Trigger的uuid由8个16进制数字和4个连字符组成,如下所示:

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

其中,每个x代表一个16进制数字(0-9、a-f)。

生成方式

在Yuka js库中,可使用 Yuka.Utils.uuid() 方法生成uuid。

方法如下:

let uuid = Yuka.Utils.uuid();
console.log(uuid);
// e3a1057d-1ea3-4853-9dc3-9e41543fbc53

应用场景

在Yuka js库中,Trigger的uuid应用于以下场景:

  • 标识Trigger,避免命名冲突。
  • 唯一标识Trigger,方便定位Trigger的属性和行为。
  • 作为Key值存储在Map数据结构中,快速查找Trigger。

注意事项

  • uuid生成算法由Yuka js库的 Yuka.Utils.uuid() 方法实现,不需要额外处理。
  • uuid不可更改,一旦生成就应当保持不变。
  • uuid应当独一无二,在生成时应当注意避免重复。
  • uuid应当保密,不应当被暴露给外部,以免造成安全隐患。

示例代码

生成Trigger的uuid,用于标识Trigger:

class MyTrigger extends Yuka.Trigger {

    constructor() {
        super();
        this.uuid = Yuka.Utils.uuid();
    }

}

使用Trigger的uuid作为Map数据结构的Key值:

// 创建Map数据结构
let map = new Map();

// 创建Trigger并获取uuid
let trigger = new MyTrigger();
let uuid = trigger.uuid;

// 存储Trigger到Map数据结构中
map.set(uuid, trigger);

// 从Map数据结构中读取Trigger
let storedTrigger = map.get(uuid);
console.log(storedTrigger);

以上代码中,存储Trigger时用到了Trigger的uuid作为Key值,从而实现了快速查找Trigger的目的。