轮廓组件的基类。 为元素添加该组件的子类可以创建一个可用于交互的轮廓。
💡 只要创建了轮廓,在点击该物体时就可以触发事件:
- touch-shape: 点击物体事件,回调参数为IShapeTouchEvent;
- drag-shape: 拖拽物体事件,回调参数为IShapeDragEvent;
- untouch-shape: 松开物体事件,回调参数为IShapeTouchEvent;
绑定事件的方法可参考以下代码:
<xr-node sphere-shape bind:touch-shape="handleTouchShape"></xr-node>
💡 如果想要将轮廓可视化来确认轮廓大小,可以在同一个元素下添加ShapeGizmos组件,或在标签上添加
shape-gizmo属性(对MeshShape不起作用)。
abstract
Type parameters
| Name | Type |
|---|---|
T |
extends IShapeData = any |
Hierarchy
-
↳
Shape↳↳
SphereShape↳↳
MeshShape↳↳
CapsuleShape↳↳
CubeShape
Table of contents
Constructors
Events
Properties
Accessors
Methods
- getBasicImpl
- getData
- getGLTFRootShape
- getShadowShapes
- initDelegates
- resetListeners
- setAsShadow
- setData
- setDataOne
Constructors
constructor
• new Shape<T>()
Type parameters
| Name | Type |
|---|---|
T |
extends IShapeData = any |
Inherited from
Events
onAdd
▸ onAdd(parent, data): void
所挂载的element被挂载到场景时触发的回调。
Parameters
| Name | Type |
|---|---|
parent |
Element |
data |
T |
Returns
void
Inherited from
onRelease
▸ onRelease(data): void
从被挂载的element上被移除,或是element被销毁时,触发的回调。
一般用于释放持有的资源。
Parameters
| Name | Type |
|---|---|
data |
IShapeData |
Returns
void
Inherited from
onRemove
▸ onRemove(parent, data): void
所挂载的element从父节点parent被移除时,或者自己从element上被移除时,触发的回调。
一般用于消除功能的运作。
如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。
Parameters
| Name | Type |
|---|---|
parent |
Element |
data |
IShapeData |
Returns
void
Inherited from
onTick
▸ onTick(dateTime, data): void
渲染每帧触发的回调。
Parameters
| Name | Type |
|---|---|
dateTime |
number |
data |
T |
Returns
void
Inherited from
onUpdate
▸ onUpdate(data, preData): void
数据更新时触发的回调。
Parameters
| Name | Type |
|---|---|
data |
T |
preData |
T |
Returns
void
Inherited from
Properties
implType
• implType: ShapeImplType
priority
• Readonly priority: number = 400
自定义组件的更新优先级。
Overrides
schema
• Readonly schema: IComponentSchema = {}
自定义组件的schema。
Inherited from
shadowRoot
• Optional shadowRoot: GLTFAbstractShape<T>
EVENTS
▪ Static EVENTS: string[]
Overrides
Accessors
el
• get el(): Element
挂载的元素。
Returns
scene
• get scene(): Scene
当前场景。
Returns
type
• get type(): EShapeType
Returns
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
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
setDataOne
▸ setDataOne<T>(key, value): void
设置一个数据。
Type parameters
| Name | Type |
|---|---|
T |
extends keyof IShapeData |
Parameters
| Name | Type |
|---|---|
key |
T |
value |
IShapeData[T] |
Returns
void