docs: expand gameobject helper docs

This commit is contained in:
2026-04-03 16:11:48 +08:00
parent ee44e14960
commit 2c2e1fab1c
34 changed files with 597 additions and 603 deletions

View File

@@ -1,30 +1,30 @@
# GameObject::GetComponentsInChildren
获取相关状态或对象
返回当前对象及其子树中的全部匹配组件
```cpp
template<typename T> std::vector<T*> GetComponentsInChildren();
template<typename T>
std::vector<T*> GetComponentsInChildren();
```
该方法声明于 `XCEngine/Components/GameObject.h`,当前页面用于固定 `GameObject` 类目录下的方法级 canonical 路径。
## 收集顺序
**参数:** 无。
当前实现会:
**返回:** `template<typename T> std::vector<T*>` - 返回值语义详见头文件声明。
1. 先调用当前对象自己的 [GetComponents](GetComponents.md)
2. 再按 `m_children` 当前顺序递归调用每个子对象的 `GetComponentsInChildren<T>()`
3. 把每个子树结果依次追加到总数组
**示例:**
因此它的结果语义是“当前对象优先,然后按子树深度优先展开”。
```cpp
#include <XCEngine/Components/GameObject.h>
## 当前语义边界
void Example() {
XCEngine::Components::GameObject object;
// 根据上下文补齐参数后调用 GameObject::GetComponentsInChildren(...)。
(void)object;
}
```
- 搜索范围包含当前对象自己
- 返回全部匹配项,而不是第一个
- `TransformComponent` 只要类型匹配,同样会通过 [GetComponents](GetComponents.md) 出现在结果里
## 相关文档
- [返回类总览](GameObject.md)
- [返回模块目录](../Components.md)
- [GetComponents](GetComponents.md)
- [GetComponentInChildren](GetComponentInChildren.md)
- [GetChildren](GetChildren.md)