Files
XCEngine/docs/api/XCEngine/Editor/Managers/SceneManager/MoveEntity.md

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,还会额外发布:
    • EntityParentChangedEvent
    • EntityChangedEvent
    • SceneChangedEvent

相关文档