Class: Shape<T>

查看 llm.txt

最后一次编辑于 2026-10-22

轮廓组件的基类。 为元素添加该组件的子类可以创建一个可用于交互的轮廓。

💡 只要创建了轮廓,在点击该物体时就可以触发事件:

绑定事件的方法可参考以下代码:

<xr-node sphere-shape bind:touch-shape="handleTouchShape"></xr-node>

💡 如果想要将轮廓可视化来确认轮廓大小,可以在同一个元素下添加ShapeGizmos组件,或在标签上添加shape-gizmo属性(对MeshShape不起作用)。

abstract

Type parameters

Name Type
T extends IShapeData = any

Hierarchy

Table of contents

Constructors

Events

Properties

Accessors

Methods

Constructors

constructor

• new Shape<T>()

Type parameters

Name Type
T extends IShapeData = any

Inherited from

Component.constructor

Events

onAdd

▸ onAdd(parent, data): void

所挂载的element被挂载到场景时触发的回调。

Parameters

Name Type
parent Element
data T

Returns

void

Inherited from

Component.onAdd


onRelease

▸ onRelease(data): void

从被挂载的element上被移除,或是element被销毁时,触发的回调。 一般用于释放持有的资源。

Parameters

Name Type
data IShapeData

Returns

void

Inherited from

Component.onRelease


onRemove

▸ onRemove(parent, data): void

所挂载的element从父节点parent被移除时,或者自己从element上被移除时,触发的回调。 一般用于消除功能的运作。 如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。

Parameters

Name Type
parent Element
data IShapeData

Returns

void

Inherited from

Component.onRemove


onTick

▸ onTick(dateTime, data): void

渲染每帧触发的回调。

Parameters

Name Type
dateTime number
data T

Returns

void

Inherited from

Component.onTick


onUpdate

▸ onUpdate(data, preData): void

数据更新时触发的回调。

Parameters

Name Type
data T
preData T

Returns

void

Inherited from

Component.onUpdate

Properties

implType

• implType: ShapeImplType


priority

• Readonly priority: number = 400

自定义组件的更新优先级。

Overrides

Component.priority


schema

• Readonly schema: IComponentSchema = {}

自定义组件的schema。

Inherited from

Component.schema


shadowRoot

• Optional shadowRoot: GLTFAbstractShape<T>


EVENTS

▪ Static EVENTS: string[]

Overrides

Component.EVENTS

Accessors

el

• get el(): Element

挂载的元素。

Returns

Element


scene

• get scene(): Scene

当前场景。

Returns

Scene


type

• get type(): EShapeType

Returns

EShapeType


version

• get version(): number

当前版本,每次有数据更新都会增加,可以用作和其他组件合作的依据。

Returns

number

Methods

getBasicImpl

▸ getBasicImpl(): BasicShape<T>

Returns

BasicShape<T>


getData

▸ getData<T>(key): IShapeData[T]

获取一个当前值。

Type parameters

Name Type
T extends keyof IShapeData

Parameters

Name Type
key T

Returns

IShapeData[T]

Inherited from

Component.getData


getGLTFRootShape

▸ getGLTFRootShape(): Shape<T>

Returns

Shape<T>


getShadowShapes

▸ getShadowShapes(): Shape<T>[]

Returns

Shape<T>[]


initDelegates

▸ initDelegates(el): void

Parameters

Name Type
el Element

Returns

void


resetListeners

▸ resetListeners(): void

Returns

void


setAsShadow

▸ setAsShadow(root, transform): void

Parameters

Name Type
root GLTFAbstractShape<T>
transform TQS

Returns

void


setData

▸ setData(data): void

不通过xml而是直接设置data,注意值的类型需要和schema中一致。

Parameters

Name Type
data Partial<IShapeData>

Returns

void

Inherited from

Component.setData


setDataOne

▸ setDataOne<T>(key, value): void

设置一个数据。

Type parameters

Name Type
T extends keyof IShapeData

Parameters

Name Type
key T
value IShapeData[T]

Returns

void

Inherited from

Component.setDataOne