Commit bc72ced
authored
# Objective
- Fixes #14206
## Solution
- Run initial `StateTransition` as a startup schedule before
`PreStartup`, instead of running it inside `Startup` as an exclusive
system.
Related discord discussion:
https://discord.com/channels/691052431525675048/692572690833473578/1259543775668207678
## Testing
Reproduction now works correctly:
```rs
use bevy::prelude::*;
#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)]
enum AppState {
#[default]
Menu,
InGame,
}
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.init_state::<AppState>()
.add_systems(Startup, setup)
.add_systems(OnEnter(AppState::Menu), enter_menu_state)
.run();
}
fn setup(mut next_state: ResMut<NextState<AppState>>) {
next_state.set(AppState::Menu);
}
fn enter_menu_state() {
println!("Entered menu state");
}
```

---
## Changelog
- Initial `StateTransition` runs before `PreStartup` instead of inside
`Startup`.
1 parent 6e8d43a commit bc72ced
3 files changed
+16
-34
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
| 1 | + | |
| 2 | + | |
7 | 3 | | |
8 | 4 | | |
9 | 5 | | |
| |||
221 | 217 | | |
222 | 218 | | |
223 | 219 | | |
224 | | - | |
| 220 | + | |
| 221 | + | |
225 | 222 | | |
226 | 223 | | |
227 | 224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | 22 | | |
24 | 23 | | |
25 | 24 | | |
| |||
64 | 63 | | |
65 | 64 | | |
66 | 65 | | |
67 | | - | |
| 66 | + | |
68 | 67 | | |
69 | 68 | | |
70 | 69 | | |
| |||
120 | 119 | | |
121 | 120 | | |
122 | 121 | | |
123 | | - | |
| 122 | + | |
124 | 123 | | |
125 | 124 | | |
126 | 125 | | |
| |||
180 | 179 | | |
181 | 180 | | |
182 | 181 | | |
183 | | - | |
| 182 | + | |
184 | 183 | | |
185 | 184 | | |
186 | 185 | | |
| |||
275 | 274 | | |
276 | 275 | | |
277 | 276 | | |
278 | | - | |
| 277 | + | |
279 | 278 | | |
280 | 279 | | |
281 | 280 | | |
| |||
354 | 353 | | |
355 | 354 | | |
356 | 355 | | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | 356 | | |
361 | 357 | | |
362 | 358 | | |
| |||
367 | 363 | | |
368 | 364 | | |
369 | 365 | | |
370 | | - | |
| 366 | + | |
371 | 367 | | |
372 | 368 | | |
373 | 369 | | |
| |||
431 | 427 | | |
432 | 428 | | |
433 | 429 | | |
434 | | - | |
| 430 | + | |
435 | 431 | | |
436 | 432 | | |
437 | 433 | | |
| |||
508 | 504 | | |
509 | 505 | | |
510 | 506 | | |
511 | | - | |
| 507 | + | |
512 | 508 | | |
513 | 509 | | |
514 | 510 | | |
| |||
568 | 564 | | |
569 | 565 | | |
570 | 566 | | |
571 | | - | |
| 567 | + | |
572 | 568 | | |
573 | 569 | | |
574 | 570 | | |
| |||
599 | 595 | | |
600 | 596 | | |
601 | 597 | | |
602 | | - | |
| 598 | + | |
603 | 599 | | |
604 | 600 | | |
605 | 601 | | |
| |||
651 | 647 | | |
652 | 648 | | |
653 | 649 | | |
654 | | - | |
| 650 | + | |
655 | 651 | | |
656 | 652 | | |
657 | 653 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | | - | |
| 5 | + | |
8 | 6 | | |
9 | 7 | | |
10 | 8 | | |
| |||
182 | 180 | | |
183 | 181 | | |
184 | 182 | | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
| 183 | + | |
189 | 184 | | |
190 | 185 | | |
191 | 186 | | |
| |||
201 | 196 | | |
202 | 197 | | |
203 | 198 | | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | 199 | | |
211 | 200 | | |
212 | 201 | | |
| |||
0 commit comments