31 lines
878 B
Markdown
31 lines
878 B
Markdown
# GameObject::GetComponentsInChildren
|
|
|
|
返回当前对象及其子树中的全部匹配组件。
|
|
|
|
```cpp
|
|
template<typename T>
|
|
std::vector<T*> GetComponentsInChildren();
|
|
```
|
|
|
|
## 收集顺序
|
|
|
|
当前实现会:
|
|
|
|
1. 先调用当前对象自己的 [GetComponents](GetComponents.md)
|
|
2. 再按 `m_children` 当前顺序递归调用每个子对象的 `GetComponentsInChildren<T>()`
|
|
3. 把每个子树结果依次追加到总数组
|
|
|
|
因此它的结果语义是“当前对象优先,然后按子树深度优先展开”。
|
|
|
|
## 当前语义边界
|
|
|
|
- 搜索范围包含当前对象自己
|
|
- 返回全部匹配项,而不是第一个
|
|
- `TransformComponent` 只要类型匹配,同样会通过 [GetComponents](GetComponents.md) 出现在结果里
|
|
|
|
## 相关文档
|
|
|
|
- [GetComponents](GetComponents.md)
|
|
- [GetComponentInChildren](GetComponentInChildren.md)
|
|
- [GetChildren](GetChildren.md)
|