Skip to content
导览

场景管理器 SceneManager

场景管理器是云渲染对象对场景控制和管理的工具,通过获取该管理器,用户可以方便地进行场景控制和管理。 该工具的主要功能包括:

  1. 根据GUID获取节点
  2. 获取3D根节点
  3. 设置拾取节点回调函数
  4. 拾取场景中的节点
  5. 拾取点
  6. 获取节点操作接口
  7. 获取虚拟树操作接口

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

SceneManager

用户可以调用云渲染实例 cloud 上的 getSceneManager() 方法来获取 SceneManager 场景管理器。

ts
const SceneManager = await cloud.getSceneManager()
const SceneManager = await cloud.getSceneManager()

用户调用 cloud.getSceneManager() 后,SceneManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getSceneManager()
const SceneManager = cloud.SceneManager
await cloud.getSceneManager()
const SceneManager = cloud.SceneManager

根据GUID获取节点 | getNodeByGuid

  • 说明:通过节点的GUID,获取对应的节点

  • 参数说明

NameTypeDescription
_guidArrstring[]GUID数组

我们可以调用 SceneManager 上面的 getNodeByGuid 方法来获取当前模型的节点数组,可以用于设置节点的相关操作。

调用示例:

ts
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 方法来获取当前模型的根节点。

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const node = await sceManager.getRootNode3D()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.getRootNode3D()

设置拾取节点回调函数 | setPickNodeCallback

  • 说明:设置拾取节点的回调函数

我们可以调用 SceneManager 上面的 setPickNodeCallback 方法来设置拾取节点的回调函数。

  • 参数说明
NameTypeDescription
fn(node: null | Node) => void函数对象,参数为Node|null,返回值为void

调用示例:

ts
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 方法来获取拾取场景中的节点,以便进行业务操作。

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickNode()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickNode()

拾取点 | pickPoint

  • 说明:获取拾取点

拾取点

拾取点,通常也称为拾取位置或交互点,是指在拾取场景中的节点时,射线与物体发生相交的位置。当选中一个物体时,通常需要获取其拾取点的位置,以便进行后续的操作,如移动、旋转、变形、交互等。

我们可以调用 SceneManager 上面的 pickPoint 方法来获取拾取点。

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickPoint()
const sceManager = await cloud.getSceneManager()
const node = await sceManager.pickPoint()

获取节点操作接口 | getNodeOperator

  • 说明:获取节点操作接口

我们可以调用 SceneManager 上面的 getNodeOperator 方法来获取节点操作接口,以便对场景中节点进行控制和操作。

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getNodeOperator()

获取虚拟树操作接口 | getVTreeManagement

  • 说明:获取虚拟树操作接口

我们可以调用 SceneManager 上面的 getVTreeManagement 方法来获取虚拟树操作接口。

调用示例:

ts
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getVTreeManagement()
const sceManager = await cloud.getSceneManager()
const ope = await sceManager.getVTreeManagement()