# GameObject::GetComponents 返回当前对象自身上的全部匹配组件。 该方法当前提供两个公开重载: ```cpp template std::vector GetComponents(); template std::vector GetComponents() const; ``` ## 收集顺序 两个重载的收集顺序一致: 1. 先尝试把内建 `m_transform` `dynamic_cast` 成 `T` 2. 若命中,则先把它加入结果 3. 再按 `m_components` 当前顺序,把所有匹配普通组件追加到结果 ## 当前语义边界 - 只收集当前对象自身,不递归父节点或子节点 - `TransformComponent` 即使不在 `m_components` 中,只要类型匹配也会出现在结果里 - 结果顺序受普通组件添加顺序影响 `tests/Components/test_game_object.cpp` 中的 `GetComponents_Multiple` 已验证多个同类型普通组件会全部被返回。 ## 相关文档 - [GetComponent](GetComponent.md) - [GetComponentsInChildren](GetComponentsInChildren.md) - [GetTransform](GetTransform.md)