# SceneObjectsManager（场景对象集合）

> 类型：管理器/基础设施类 | 继承链：`Destroyable -> SceneObjectsManager`

持有全部被托管场景对象的集合（objm.sceneObjectsManager）。对象增删时触发 sceneObjectsToChange 事件，ViewersManager 据此自动把对象关联到视口。通常通过 objm.createSceneObject* 间接操作。

## 属性

| 属性 | 类型 | 默认值 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `sceneObjects` | - | - | 获取当前管理的场景对象集合。 | SceneObjectsManager |
| `sceneObjectsToChange` | - | - | 获取场景对象变更事件的监听器。 | SceneObjectsManager |

## 方法

| 方法 | 参数 | 返回 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `addSceneObject(sceneObject: T)` | sceneObject: T | - | 向管理器中添加一个场景对象。 如果对象已经存在于管理器中，会输出警告信息并返回 false。<br>**参数**：sceneObject - 要添加的场景对象。<br>**返回**：如果添加成功返回 true，否则返回 false。 | SceneObjectsManager |
| `createSceneObject(sceneObjectType: string | (new (id?: string) => T), id?: string)` | sceneObjectType: string \| (new (id?: string) => T), id?: string | - | 根据场景对象类型和可选的 ID 创建一个场景对象，并将其添加到管理器中。<br>**参数**：sceneObjectType - 场景对象类型或构造函数。；[id] - 可选的场景对象 ID。<br>**返回**：如果创建成功返回场景对象，否则返回 undefined。 | SceneObjectsManager |
| `createSceneObjectFromClass(sceneObjConstructor: new (id?: string) => T, id?: string)` | sceneObjConstructor: new (id?: string) => T, id?: string | - | 根据场景对象的构造函数和可选的 ID 创建一个场景对象，并将其添加到管理器中。<br>**参数**：sceneObjConstructor - 场景对象的构造函数。；[id] - 可选的场景对象 ID。<br>**返回**：如果创建成功返回场景对象，否则返回 undefined。 | SceneObjectsManager |
| `createSceneObjectFromJson(sceneObjectJson: JsonValue & { type: string;[k: string]: any; })` | sceneObjectJson: JsonValue & { type: string;[k: string]: any; } | - | 根据 JSON 对象创建一个场景对象，并将其添加到管理器中。<br>**返回**：如果创建成功返回场景对象，否则返回 undefined。 | SceneObjectsManager |
| `createSceneObjectFromUrl(url: string, id?: string)` | url: string, id?: string | - | 根据 URL 创建场景对象。<br>**参数**：url - 场景对象的 URL。；id - 场景对象的 ID，可选。<br>**返回**：创建的场景对象。 | SceneObjectsManager |
| `deleteSceneObject(sceneObject: T)` | sceneObject: T | - | 从管理器中删除一个场景对象。 如果对象不存在于管理器中，会输出警告信息并返回 false。<br>**参数**：sceneObject - 要删除的场景对象。<br>**返回**：如果删除成功返回 true，否则返回 false。 | SceneObjectsManager |

## 事件

_（无事件）_

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。
