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

30 lines
745 B
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# GameObject::Start
2026-04-03 16:11:48 +08:00
向当前对象及其子树分发一次性的 `Start()` 阶段。
2026-03-26 16:45:24 +08:00
```cpp
void Start();
```
2026-04-03 16:11:48 +08:00
## 行为说明
2026-03-26 16:45:24 +08:00
2026-04-03 16:11:48 +08:00
当前实现分两步:
2026-03-26 16:45:24 +08:00
2026-04-03 16:11:48 +08:00
1. 若对象不处于 `active in hierarchy`,直接返回
2. 若对象尚未 `m_started`
- 对所有已启用普通组件调用 `Start()`
-`m_started` 置为 `true`
3. 无论当前对象是否第一次启动,都会继续递归对子对象调用 `Start()`
2026-03-26 16:45:24 +08:00
2026-04-03 16:11:48 +08:00
## 重要边界
2026-03-26 16:45:24 +08:00
2026-04-03 16:11:48 +08:00
- 每个对象自己的 `Start()` 只会自动执行一次
- 子对象也通过这个递归链进入 `Start()`
- 运行时后加的组件不会因为对象已启动过而自动补发 `Start()`
2026-03-26 16:45:24 +08:00
## 相关文档
2026-04-03 16:11:48 +08:00
- [Awake](Awake.md)
- [Update](Update.md)
- [IsActiveInHierarchy](IsActiveInHierarchy.md)