diff --git a/crates/bevy_asset/src/lib.rs b/crates/bevy_asset/src/lib.rs
index fe415071c1b6c..de13a09786b82 100644
--- a/crates/bevy_asset/src/lib.rs
+++ b/crates/bevy_asset/src/lib.rs
@@ -23,6 +23,13 @@
 //! The handle that's returned will be used to instantiate various [`Component`](bevy_ecs::prelude::Component)s that require asset data to function,
 //! which will then be spawned into the world as part of an entity.
 //!
+//! To avoid assets "popping" into existence, you may want to check that all of the required assets are loaded before transitioning to a new scene.
+//! This can be done by checking the [`LoadState`] of the asset handle using [`AssetServer::is_loaded_with_dependencies`],
+//! which will be [`LoadState::Loaded`] when the asset is ready to use.
+//! Keep track of what you're waiting on using a [`HashSet`] or similar data structure,
+//! poll in your update loop, and transition to the new scene when all assets are loaded.
+//! Bevy's built-in states system can be very helpful for this!
+//!
 //! If we later want to manipulate this asset data (such as for displaying a death animation), we have three options:
 //!
 //! 1. Despawn the entity and spawn a new one with the new asset data.