1005 B
1005 B
SceneManager::MoveEntity
命名空间: XCEngine::Editor
类型: method
源文件: editor/src/Managers/SceneManager.h
签名
void MoveEntity(
::XCEngine::Components::GameObject::ID id,
::XCEngine::Components::GameObject::ID newParent);
作用
修改实体父级,并同步刷新层级缓存和事件。
当前实现行为
- 当前没有场景或找不到目标实体时直接返回。
- 会先记录旧父节点 id。
newParent != 0时会查找新的父节点对象;传入0表示移动到 root。- 之后调用
obj->SetParent(newParent)修改层级关系。 - 成功后会:
SyncRootEntities()MarkSceneDirty()OnEntityChanged.Invoke(id)OnSceneChanged.Invoke()
- 如果存在
EventBus,还会额外发布:EntityParentChangedEventEntityChangedEventSceneChangedEvent