InitState 系统完整流程图
    A[组件 OnRegister] --> B[RegisterInitStateFeature 注册到系统]
    B --> C[BeginPlay]
    C --> D[TryToChangeInitState 切换到 Spawned 状态]
    D --> E[CheckDefaultInitialization]
    E --> F[ContinueInitStateChain 尝试推进状态链]
    
    F --> G{CanChangeInitState? >条件满足吗?}
    G -->|是 | H[系统切换状态]
    G -->|否 | I[等待条件满足]
    
    H --> J[HandleChangeInitState 执行实际初始化逻辑]
    J --> K[触发 OnActorInitStateChanged 通知监听者]
    K --> L[其他组件收到通知 调用自己的 CheckDefaultInitialization]
    L --> F
    
    I --> M[依赖事件触发<br/>如 OnRep_PawnData]
    M --> N[再次调用<br/>CheckDefaultInitialization]
    N --> F


初始状态(无)
   ↓
   ├─ TryToChangeInitState(Spawned)
   │  └─ CanChangeInitState(..., Invalid, Spawned) → true
   │  └─ HandleChangeInitState(..., Invalid, Spawned)
   │
   ▼
Spawned(已生成)
   ↓
   ├─ CheckDefaultInitialization() → ContinueInitStateChain()
   │  └─ CanChangeInitState(..., Spawned, DataAvailable)
   │     ├─ 检查:PawnData? ✓ Controller? ✓
   │     └─ 返回 true
   │  └─ HandleChangeInitState(..., Spawned, DataAvailable)
   │
   ▼
DataAvailable(数据可用)
   ↓
   ├─ 等待所有依赖特征都达到 DataAvailable
   │  └─ CanChangeInitState(..., DataAvailable, DataInitialized)
   │     └─ Manager->HaveAllFeaturesReachedInitState(...)
   │  └─ HandleChangeInitState(..., DataAvailable, DataInitialized)
   │     └─ 初始化 AbilitySystem, Input 等
   │
   ▼
DataInitialized(数据已初始化)
   ↓
   ├─ CanChangeInitState(..., DataInitialized, GameplayReady) → true
   │  └─ HandleChangeInitState(..., DataInitialized, GameplayReady)
   │
   ▼
GameplayReady(游戏就绪)