将一个GLTF模型实例化并渲染出来。 xr-gltf标签会自动生成该组件。
会在当前元素下新建一系列子元素,作为GLTF模型的每个场景的根节点。 会在当前元素上新建Animator组件,并向其添加实例化生成的动画片段。
see IGLTFData
Hierarchy
Table of contents
Constructors
Events
Properties
Accessors
Methods
- calcTotalBoundBox
- getData
- getInternalNodeByName
- getPrimitivesByMeshName
- getPrimitivesByNodeName
- setData
- setDataOne
Constructors
constructor
• new GLTF()
Inherited from
Events
onAdd
▸ onAdd(parent, data): void
所挂载的element被挂载到场景时触发的回调。
Parameters
Returns
void
Inherited from
onRelease
▸ onRelease(data): void
从被挂载的element上被移除,或是element被销毁时,触发的回调。
一般用于释放持有的资源。
Parameters
| Name | Type |
|---|---|
data |
IGLTFData |
Returns
void
Inherited from
onRemove
▸ onRemove(parent, data): void
所挂载的element从父节点parent被移除时,或者自己从element上被移除时,触发的回调。
一般用于消除功能的运作。
如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。
Parameters
Returns
void
Inherited from
onTick
▸ onTick(deltaTime, data): void
渲染每帧触发的回调。
Parameters
| Name | Type | Description |
|---|---|---|
deltaTime |
number |
单位为毫秒(ms)。 |
data |
IGLTFData |
- |
Returns
void
Inherited from
onUpdate
▸ onUpdate(data, preData): void
数据更新时触发的回调。
Parameters
Returns
void
Inherited from
Properties
priority
• Readonly priority: number = 300
自定义组件的更新优先级。
Overrides
schema
• Readonly schema: IComponentSchema
自定义组件的schema。
Overrides
EVENTS
▪ Static EVENTS: string[]
Overrides
Accessors
el
• get el(): Element
挂载的元素。
Returns
meshes
• get meshes(): Mesh[]
获取GLTF模型实例化过程中生成的所有Mesh组件。
Returns
Mesh[]
scene
• get scene(): Scene
当前场景。
Returns
version
• get version(): number
当前版本,每次有数据更新都会增加,可以用作和其他组件合作的依据。
Returns
number
Methods
calcTotalBoundBox
▸ calcTotalBoundBox(): BoundBox
计算GLTF模型整体的包围盒,返回模型空间内的计算结果。 每次调用都会重新计算。
Returns
getData
▸ getData<T>(key): IGLTFData[T]
获取一个当前值。
Type parameters
| Name | Type |
|---|---|
T |
extends keyof IGLTFData |
Parameters
| Name | Type |
|---|---|
key |
T |
Returns
IGLTFData[T]
Inherited from
getInternalNodeByName
▸ getInternalNodeByName(name): Element
根据GLTF模型中节点的name字段来获取内部元素。
Parameters
| Name | Type |
|---|---|
name |
string |
Returns
getPrimitivesByMeshName
▸ getPrimitivesByMeshName(name): { nodeName: string ; primitives: Mesh[] }[]
根据GLTF模型中Mesh节点的name字段,来获取引用了该Mesh的所有Node节点下的所有Primitive。
在xr-frame实现中,每个引用了该Mesh的GLTFNode节点拥有独立的一份Primitives副本,每个Node节点下的每个Primitive对应一个xr-frame Mesh组件。
*如果没有引用了该Mesh的Node节点,会返回空数组。
Parameters
| Name | Type | Description |
|---|---|---|
name |
string |
Mesh节点的name |
Returns
{ nodeName: string ; primitives: Mesh[] }[]
一个数组,数组中的一个元素对应一个引用了该Mesh的GLTFNode节点,元素中nodeName为GLTFNode节点的name字段。
getPrimitivesByNodeName
▸ getPrimitivesByNodeName(name): Mesh[]
根据GLTF模型中引用了Mesh的Node节点的name字段,来获取对应Mesh下的所有Primitive。
一个GLTF模型中的Primitive节点对应返回中的一个xr-frame Mesh组件实例。
*如果没有该名字的节点,或者节点未引用Mesh,会返回空数组。
Parameters
| Name | Type | Description |
|---|---|---|
name |
string |
Node节点的name(而非Mesh节点) |
Returns
Mesh[]
setData
▸ setData(data): void
不通过xml而是直接设置data,注意值的类型需要和schema中一致。
Parameters
| Name | Type |
|---|---|
data |
Partial<IGLTFData> |
Returns
void
Inherited from
setDataOne
▸ setDataOne<T>(key, value): void
设置一个数据。
Type parameters
| Name | Type |
|---|---|
T |
extends keyof IGLTFData |
Parameters
| Name | Type |
|---|---|
key |
T |
value |
IGLTFData[T] |
Returns
void