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

fromJSON

fromJSON()是Yuka js库中MeshGeometry对象的一个方法。它允许将一个JSON格式的数据转换为MeshGeometry对象。

语法

MeshGeometry.fromJSON(data)

参数

  • data:一个包含MeshGeometry数据的JSON对象。

返回值

一个新的MeshGeometry对象。

例子

const data = {
    vertices: [ 0, 0, 0, 1, 1, 1, -1, -1, -1 ],
    indices: [ 0, 1, 2 ],
    normals: [ 0, 0, 1, 0, 0, 1, 0, 0, 1 ],
    uv: [ 0, 0, 1, 1, 1, 0 ]
};

const geometry = MeshGeometry.fromJSON(data);

数据格式

JSON数据应包含以下属性:

  • vertices:一个包含所有顶点的向量数组。
  • indices:一个包含所有索引的数组。每个索引引用vertices数组中的一个位置。
  • normals:一个包含所有法线向量的数组。对于每个顶点,应对应一个法线向量。
  • uv:一个包含所有纹理坐标的数组。对于每个顶点,应对应一个纹理坐标。

indices数组应该是一个长度为3的整数数组,因为MeshGeometry对象是基于三角形绘制的。如果数据不完整或无效,则将返回一个空的MeshGeometry对象。

技巧

如果想要轻松创建自己的JSON格式数据,可以使用3D建模软件或工具,如Blender或Three.js,来导出自己的网格数据。在这个过程中,选择正确的文件格式可以大大简化导入数据的步骤。