SceneSpawner

Struct SceneSpawner 

Source
pub struct SceneSpawner { /* private fields */ }
Expand description

Handles spawning and despawning scenes in the world, either synchronously or batched through the scene_spawner_system.

Synchronous methods: (Scene operations will take effect immediately)

Deferred methods: (Scene operations will be processed when the scene_spawner_system is run)

Implementations§

Source§

impl SceneSpawner

Source

pub fn spawn_dynamic( &mut self, id: impl Into<Handle<DynamicScene>>, ) -> InstanceId

Schedule the spawn of a new instance of the provided dynamic scene.

Source

pub fn spawn_dynamic_as_child( &mut self, id: impl Into<Handle<DynamicScene>>, parent: Entity, ) -> InstanceId

Schedule the spawn of a new instance of the provided dynamic scene as a child of parent.

Source

pub fn spawn(&mut self, id: impl Into<Handle<Scene>>) -> InstanceId

Schedule the spawn of a new instance of the provided scene.

Source

pub fn spawn_as_child( &mut self, id: impl Into<Handle<Scene>>, parent: Entity, ) -> InstanceId

Schedule the spawn of a new instance of the provided scene as a child of parent.

Source

pub fn despawn(&mut self, id: impl Into<AssetId<DynamicScene>>)

Schedule the despawn of all instances of the provided dynamic scene.

Source

pub fn despawn_instance(&mut self, instance_id: InstanceId)

Schedule the despawn of a scene instance, removing all its entities from the world.

Note: this will despawn all entities associated with this instance, including those that have been removed from the scene hierarchy. To despawn only entities still in the hierarchy, despawn the relevant root entity directly.

Source

pub fn unregister_instance(&mut self, instance_id: InstanceId)

This will remove all records of this instance, without despawning any entities.

Source

pub fn despawn_sync( &mut self, world: &mut World, id: impl Into<AssetId<DynamicScene>>, ) -> Result<(), SceneSpawnError>

Immediately despawns all instances of a dynamic scene.

Source

pub fn despawn_instance_sync( &mut self, world: &mut World, instance_id: &InstanceId, )

Immediately despawns a scene instance, removing all its entities from the world.

Source

pub fn spawn_dynamic_sync( &mut self, world: &mut World, id: impl Into<AssetId<DynamicScene>>, ) -> Result<InstanceId, SceneSpawnError>

Immediately spawns a new instance of the provided dynamic scene.

Source

pub fn spawn_sync( &mut self, world: &mut World, id: impl Into<AssetId<Scene>>, ) -> Result<InstanceId, SceneSpawnError>

Immediately spawns a new instance of the provided scene.

Source

pub fn update_spawned_scenes( &mut self, world: &mut World, scene_ids: &[AssetId<DynamicScene>], ) -> Result<(), SceneSpawnError>

Iterate through all instances of the provided scenes and update those immediately.

Useful for updating already spawned scene instances after their corresponding scene has been modified.

Source

pub fn despawn_queued_scenes( &mut self, world: &mut World, ) -> Result<(), SceneSpawnError>

Immediately despawns all scenes scheduled for despawn by despawning their instances.

Source

pub fn despawn_queued_instances(&mut self, world: &mut World)

Immediately despawns all scene instances scheduled for despawn.

Source

pub fn spawn_queued_scenes( &mut self, world: &mut World, ) -> Result<(), SceneSpawnError>

Immediately spawns all scenes scheduled for spawn.

Source

pub fn instance_is_ready(&self, instance_id: InstanceId) -> bool

Check that a scene instance spawned previously is ready to use

Source

pub fn iter_instance_entities( &self, instance_id: InstanceId, ) -> impl Iterator<Item = Entity>

Get an iterator over the entities in an instance, once it’s spawned.

Before the scene is spawned, the iterator will be empty. Use Self::instance_is_ready to check if the instance is ready.

Trait Implementations§

Source§

impl Default for SceneSpawner

Source§

fn default() -> SceneSpawner

Returns the “default value” for a type. Read more
Source§

impl Resource for SceneSpawner
where SceneSpawner: Send + Sync + 'static,

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,