Scene
xr-frame / Exports / Scene
# Class: Scene
场景,系统核心之一。
Scene
是元素的一种,对应于xr-scene
标签。
作为整个xr-frame
组件的根节点,它提供了整个组件运作的一些基本能力,挂在了各大系统,驱动生命周期循环。
# Hierarchy
Element
↳
Scene
# Table of contents
# Constructors
- constructor
# Properties
- dataMapping
- defaultComponents
- isScene
- TYPE
# Accessors
- animation
- ar
- assets
- event
- frameHeight
- frameWidth
- gizmo
- height
- id
- inXML
- name
- parent
- physics
- ready
- render
- rootShadow
- scene
- share
- timestamp
- video
- width
# Methods
- addChild
- addComponent
- createEffect
- createElement
- createGeometry
- createImage
- createMaterial
- createPostProcess
- createRenderTexture
- createTexture
- createUniformBlock
- createUniformBlockDesc
- createVertexLayout
- createVideoTexture
- dfs
- getChildAtIndex
- getChildByClass
- getChildByFilter
- getChildByName
- getChildrenByFilter
- getChildrenByName
- getComponent
- getElementById
- getNodeById
- release
- removeChild
- removeComponent
- setAttribute
- setId
# Constructors
# constructor
• new Scene(_type
, triggerEvent
)
# Parameters
# Inherited from
Element.constructor
# Properties
# dataMapping
• Readonly
dataMapping: Object
Element
的数据映射。它是为了给组件的属性提供一个方便的用法,比如:
{
position: [transform, position]
}
就是将xml
中写在这个Element
的position
直接映射到了transform
组件的position
属性上。
通常来讲,所有的驼峰如nodeId
都会被映射为小写加中划线node-id
。
# Index signature
▪ [key: string
]: string
[]
# Inherited from
Element.dataMapping
# defaultComponents
• Readonly
defaultComponents: IEntityComponents
Element
的默认组件集合,详见IEntityComponents。
# Overrides
Element.defaultComponents
# isScene
• Readonly
isScene: boolean
= true
# TYPE
▪ Static
TYPE: string
= 'element'
# Inherited from
Element.TYPE
# Accessors
# animation
• get
animation(): AnimationSystem
动画系统。
# Returns
AnimationSystem
# ar
• get
ar(): ARSystem
AR系统。
# Returns
ARSystem
# assets
• get
assets(): AssetsSystem
资源系统。
# Returns
AssetsSystem
# event
• get
event(): EventManager
事件管理器。
# Returns
EventManager
# frameHeight
• get
frameHeight(): number
显示分辨率高。
# Returns
number
# frameWidth
• get
frameWidth(): number
显示分辨率宽。
# Returns
number
# gizmo
• get
gizmo(): GizmoSystem
Gizmo系统。
# Returns
GizmoSystem
# height
• get
height(): number
渲染分辨率高,一般物理点击事件之类的都是参考这个。
# Returns
number
# id
• get
id(): string
写在xml
上的那个id
,要求唯一。
# Returns
string
# inXML
• get
inXML(): boolean
元素是否在xml
中,若是xr-shadow
下的节点,则为false
。
# Returns
boolean
# name
• get
name(): string
名字,写在xml
上的那个name
,不唯一。
# Returns
string
• set
name(value
): void
名字,写在xml
上的那个name
,不唯一。
# Parameters
# Returns
void
# parent
• get
parent(): Element
父元素。
# Returns
Element
# physics
• get
physics(): PhysicsSystem
物理系统。
# Returns
PhysicsSystem
# ready
• get
ready(): boolean
场景是否已经就绪。
# Returns
boolean
# render
• get
render(): RenderSystem
渲染系统。
# Returns
RenderSystem
# rootShadow
• get
rootShadow(): XRShadow
一个可以用于快速挂载自己创建的Element
的shadow
节点。
# Returns
XRShadow
# scene
• get
scene(): this
自身。
# Returns
this
# share
• get
share(): ShareSystem
分享系统。
# Returns
ShareSystem
# timestamp
• get
timestamp(): number
当前时间戳(ms)。
# Returns
number
# video
• get
video(): VideoSystem
视频系统。
# Returns
VideoSystem
# width
• get
width(): number
渲染分辨率宽,一般物理点击事件之类的都是参考这个。
# Returns
number
# Methods
# addChild
▸ addChild(child
): void
手动添加一个子节点,注意需要保证当前节点是xr-shadow
或其子节点。
# Parameters
# Returns
void
# Inherited from
Element.addChild
# addComponent
▸ addComponent<T
>(clz
, options?
): T
手动添加一个Component
。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.addComponent
# createEffect
▸ createEffect(description
): Effect
手动创建一个Effect
资源。
# Parameters
# Returns
Effect
# createElement
▸ createElement<T
>(clz
, attributes?
): T
创建一个Element
,但注意其只能作为xr-shadow
的子孙节点,否则可能会出错!
# Type parameters
# Parameters
# Returns
T
# createGeometry
▸ createGeometry(vertexLayout
, vBuffer
, iBuffer
, indexType?
): Geometry
手动创建一个Geometry
资源。
# Parameters
# Returns
Geometry
# createImage
▸ createImage(autoRelease?
): IImage
手动创建一个Image
资源。
# Parameters
# Returns
IImage
# createMaterial
▸ createMaterial(effect
, defaultUniforms?
): Material
手动创建一个Material
资源。
# Parameters
# Returns
Material
# createPostProcess
▸ createPostProcess(options
): PostProcess
手动创建一个PostProcess
资源。
# Parameters
# Returns
PostProcess
# createRenderTexture
▸ createRenderTexture(options?
): RenderTexture
手动创建一个RenderTexture
资源。
# Parameters
# Returns
RenderTexture
# createTexture
▸ createTexture(options
): default
手动创建一个Texture
资源。
# Parameters
# Returns
default
# createUniformBlock
▸ createUniformBlock(descriptor
): default
手动创建一个UniformBlock
资源。
# Parameters
# Returns
default
# createUniformBlockDesc
▸ createUniformBlockDesc(options
): default
手动创建一个UniformBlockDescriptor
资源。
# Parameters
# Returns
default
# createVertexLayout
▸ createVertexLayout(options
): default
手动创建一个VertexLayout
资源。
# Parameters
# Returns
default
# createVideoTexture
▸ createVideoTexture(options?
): Promise
<VideoTexture
>
手动创建一个VideoTexture
资源。
# Parameters
# Returns
Promise
<VideoTexture
>
# dfs
▸ dfs<T
>(callback
, defaultParams?
, excludeRoot?
, stop?
): void
递归遍历元素的所有子孙节点。
# Type parameters
# Parameters
# Returns
void
# Inherited from
Element.dfs
# getChildAtIndex
▸ getChildAtIndex<T
>(index
): T
获取第index
个子元素。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getChildAtIndex
# getChildByClass
▸ getChildByClass<T
>(clz
): T
通过元素的类获取子元素。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getChildByClass
# getChildByFilter
▸ getChildByFilter<T
>(filter
): T
通过filter
获取子元素。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getChildByFilter
# getChildByName
▸ getChildByName<T
>(name
): T
通过元素的名字name
获取子元素。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getChildByName
# getChildrenByFilter
▸ getChildrenByFilter(filter
): Element
[]
通过filter
获取子元素列表。
# Parameters
# Returns
Element
[]
# Inherited from
Element.getChildrenByFilter
# getChildrenByName
▸ getChildrenByName(name
): Element
[]
通过元素的名字name
获取子元素们。
# Parameters
# Returns
Element
[]
# Inherited from
Element.getChildrenByName
# getComponent
▸ getComponent<T
>(clzName
): T
获取一个Component
,可以使用类或者名字获取。
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getComponent
▸ getComponent<T
>(clz
): T
# Type parameters
# Parameters
# Returns
T
# Inherited from
Element.getComponent
# getElementById
▸ getElementById(id
): Element
通过在wxml
的元素上设置的id
索引一个元素,id
是唯一的。
# Parameters
# Returns
Element
# getNodeById
▸ getNodeById(nodeId
): Transform
通过在wxml
的元素上设置的node-id
索引一个Transform
组件,node-id
是唯一的。
# Parameters
# Returns
Transform
# release
▸ release(): void
仅限自己创建的节点使用,否则后果自负。
# Returns
void
# Inherited from
Element.release
# removeChild
▸ removeChild(child
): void
手动移除一个子节点,注意需要保证当前节点是xr-shadow
或其子节点。
只调用removeChild没有办法走进子节点的onRelease里,需要手动调用子节点的release才行。
# Parameters
# Returns
void
# Inherited from
Element.removeChild
# removeComponent
▸ removeComponent(clz
): void
手动移除一个Component
,注意保证其不在xml
上。
# Parameters
# Returns
void
# Inherited from
Element.removeComponent
# setAttribute
▸ setAttribute(name
, value
): void
设置一个属性,对应于xml
标签中的那些属性,值为字符串。
一般建议使用component
的setData
方法!!!
# Parameters
# Returns
void
# Inherited from
Element.setAttribute
# setId
▸ setId(id
): void
仅限自己创建的节点使用,否则后果自负。
# Parameters
# Returns
void
# Inherited from
Element.setId