Load Scene Info
O Load Scene Info é um objeto que guarda uma referência a uma cena para ser carregada (ou descarregada) e valida se ele pode ser referência a uma cena carregada.
Interface ILoadSceneInfo
A interface ILoadSceneInfo
apenas define:
public interface ILoadSceneInfo
{
LoadSceneInfoType Type { get; }
object Reference { get; }
bool CanBeReferenceToScene(Scene scene);
}
Já que o campo Reference
pode guardar qualquer tipo de referência, o scene manager será responsável por decidir o que fazer com esse valor.
O LoadSceneInfoType
é basicamente um enum que ajuda a converter o valor de Reference
sem precisar converter o objeto ILoadSceneInfo
.
O load scene info apenas guarda essas informações, e por isso que suas implementações inclusas no pacote são todas readonly structs.
Tipos de Load Scene Info
Você pode escolher trabalhar com cinco load scene infos:
- O
LoadSceneInfoName
, referenciando o nome de uma cena. - O
LoadSceneInfoIndex
, referenciando o índice de build de uma cena. - O
LoadSceneInfoScene
, referenciando astruct
de uma cena carregada. - O
LoadSceneInfoAssetReference
, referenciando o Addressable Asset Reference de uma cena. - O
LoadSceneInfoAddress
, referenciando o Addressable Address de uma cena.
Você também pode definir sua própria implementação de ILoadSceneInfo
se você tiver necessidades específicas, mas isso provavlmente requerá que você implementa um scene manager para interpretar seu valor de Reference
também.
Ao descarregar uma cena, o CoreSceneManager
irá procurar por qualquer uma das suas cenas que equivalem o valor ILoadSceneInfo.Reference
, seja a própria cena, nome, caminho, índice de build ou referências addressable.
Isso significa que a forma preferida de descarregar cenas é usando um LoadSceneInfoScene
, já que ele carrega uma referência direta à cena alvo, mas você pode usar qualquer tipo de ILoadSceneInfo
.
Se você tem várias cenas carregadas com a mesma referência, descarregando pelo ILoadSceneInfo
sempre irá descarregar a última cena carregada com essa referência.
Ao descarregar cenas addressable, seus recursos são descarregados por meio de uma chamada interna ao método Addressables.UnloadSceneAsync
.