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