场景管理器 SceneManager
场景管理器是云渲染对象对场景控制和管理的工具,通过获取该管理器,用户可以方便地进行场景控制和管理。 该工具的主要功能包括:
- 根据GUID获取节点
- 获取3D根节点
- 设置拾取节点回调函数
- 拾取场景中的节点
- 拾取点
- 获取节点操作接口
- 获取虚拟树操作接口
我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。
SceneManager
用户可以调用云渲染实例 cloud
上的 getSceneManager()
方法来获取 SceneManager
场景管理器。
const SceneManager = await cloud.getSceneManager()
const SceneManager = await cloud.getSceneManager()
用户调用 cloud.getSceneManager()
后,SceneManager
会被自动挂载到当前 cloud
实例上。
await cloud.getSceneManager()
const SceneManager = cloud.SceneManager
await cloud.getSceneManager()
const SceneManager = cloud.SceneManager
根据GUID获取节点 | getNodeByGuid
说明:通过节点的GUID,获取对应的节点
参数说明
Name | Type | Description |
---|---|---|
_guidArr | string [] | GUID数组 |
我们可以调用 SceneManager
上面的 getNodeByGuid
方法来获取当前模型的节点数组,可以用于设置节点的相关操作。
调用示例:
const sceManager = await cloud.getSceneManager()
const nodes = await sceManager.getNodeByGuid(_guidArr)
const sceManager = await cloud.getSceneManager()
const nodes = await sceManager.getNodeByGuid(_guidArr)
获取3D根节点 | getRootNode3D
- 说明:获取模型的3D根节点
3D根节点(Node)
3D根节点通常是指一个场景中的根节点,它是所有其他3D对象的父对象,或者说是3D场景中的最高级别容器。
我们可以调用 SceneManager
上面的 getRootNode3D
方法来获取当前模型的根节点。
调用示例:
const sceManager = await cloud.getSceneManager()
const node = await sceManager.getRootNode3D()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.getRootNode3D()
设置拾取节点回调函数 | setPickNodeCallback
- 说明:设置拾取节点的回调函数
我们可以调用 SceneManager
上面的 setPickNodeCallback
方法来设置拾取节点的回调函数。
- 参数说明
Name | Type | Description |
---|---|---|
fn | (node : null | Node ) => void | 函数对象,参数为Node|null,返回值为void |
调用示例:
let clickone: Node | null
async function pickNode(node: Node | null) {
clickone = node
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()
if (clickone)
await ope.showOutLine(clickone, true)
}
const sceManager = await cloud.getSceneManager()
await sceManager.setPickNodeCallback(pickNode)
let clickone: Node | null
async function pickNode(node: Node | null) {
clickone = node
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()
if (clickone)
await ope.showOutLine(clickone, true)
}
const sceManager = await cloud.getSceneManager()
await sceManager.setPickNodeCallback(pickNode)
拾取场景中的节点 | pickNode
- 说明:拾取场景中的节点
拾取场景中的节点
拾取场景中的节点,通常也称为选择或点击,是指通过鼠标或触屏等输入设备选中场景中的一个或多个物体,以便进行后续的操作。
我们可以调用 SceneManager
上面的 pickNode
方法来获取拾取场景中的节点,以便进行业务操作。
调用示例:
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickNode()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickNode()
拾取点 | pickPoint
- 说明:获取拾取点
拾取点
拾取点,通常也称为拾取位置或交互点,是指在拾取场景中的节点时,射线与物体发生相交的位置。当选中一个物体时,通常需要获取其拾取点的位置,以便进行后续的操作,如移动、旋转、变形、交互等。
我们可以调用 SceneManager
上面的 pickPoint
方法来获取拾取点。
调用示例:
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickPoint()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickPoint()
获取节点操作接口 | getNodeOperator
- 说明:获取节点操作接口
我们可以调用 SceneManager
上面的 getNodeOperator
方法来获取节点操作接口,以便对场景中节点进行控制和操作。
调用示例:
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()
获取虚拟树操作接口 | getVTreeManagement
- 说明:获取虚拟树操作接口
我们可以调用 SceneManager
上面的 getVTreeManagement
方法来获取虚拟树操作接口。
调用示例:
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getVTreeManagement()
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getVTreeManagement()