Files
XCEngine/docs/api/XCEngine/Components/GameObject/GetComponents.md

1003 B

GameObject::GetComponents

返回当前对象自身上的全部匹配组件。

该方法当前提供两个公开重载:

template<typename T> std::vector<T*> GetComponents();
template<typename T> std::vector<const T*> GetComponents() const;

收集顺序

两个重载的收集顺序一致:

  1. 先尝试把内建 m_transform dynamic_castT
  2. 若命中,则先把它加入结果
  3. 再按 m_components 当前顺序,把所有匹配普通组件追加到结果

当前语义边界

  • 只收集当前对象自身,不递归父节点或子节点
  • TransformComponent 即使不在 m_components 中,只要类型匹配也会出现在结果里
  • 结果顺序受普通组件添加顺序影响

tests/Components/test_game_object.cpp 中的 GetComponents_Multiple 已验证多个同类型普通组件会全部被返回。

相关文档