# Class: GLTF
将一个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