No bevy, podemos definir SystemParam
s personalizados como neste exemplo
/// The [`SystemParam`] struct can contain any types that can also be included in a
/// system function signature.
///
/// In this example, it includes a query and a mutable resource.
#[derive(SystemParam)]
struct PlayerCounter<'w, 's> {
players: Query<'w, 's, &'static Player>,
count: ResMut<'w, PlayerCount>,
}
A documentação do SystemParam explica que
Estruturas SystemParam derivadas podem ter dois tempos de vida:
'w
para dados armazenados no Mundo e's
para dados armazenados no estado do parâmetro.
Considere a &static
vida toda Player
...
Eu entenderia isso como "O Player deve existir durante toda a duração em que o programa estiver em execução", mas isso é claramente falso, pois a Query
também pode ser usado sem nenhuma Player
Entidade... em vez disso, parece mais que this 'static
lifetime se refere apenas ao tipo em si ter que existir. Mas essas são apenas suposições.
Qual é o significado do &'static
tempo de vida Player
aqui e por que/quando ele é necessário?