Skip to content

Commit bebe7c4

Browse files
authored
Make camera controller not trigger change detection every frame (#19547)
Split off from #19058
1 parent 476e644 commit bebe7c4

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

examples/helpers/camera_controller.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ fn run_camera_controller(
198198
}
199199
let cursor_grab = *mouse_cursor_grab || *toggle_cursor_grab;
200200

201-
// Apply movement update
201+
// Update velocity
202202
if axis_input != Vec3::ZERO {
203203
let max_speed = if key_input.pressed(controller.key_run) {
204204
controller.run_speed
@@ -213,11 +213,15 @@ fn run_camera_controller(
213213
controller.velocity = Vec3::ZERO;
214214
}
215215
}
216-
let forward = *transform.forward();
217-
let right = *transform.right();
218-
transform.translation += controller.velocity.x * dt * right
219-
+ controller.velocity.y * dt * Vec3::Y
220-
+ controller.velocity.z * dt * forward;
216+
217+
// Apply movement update
218+
if controller.velocity != Vec3::ZERO {
219+
let forward = *transform.forward();
220+
let right = *transform.right();
221+
transform.translation += controller.velocity.x * dt * right
222+
+ controller.velocity.y * dt * Vec3::Y
223+
+ controller.velocity.z * dt * forward;
224+
}
221225

222226
// Handle cursor grab
223227
if cursor_grab_change {

0 commit comments

Comments
 (0)