
Na computação, a serialização é o processo de traduzir uma estrutura de dados ou o estado de um objeto em um formato que o computador possa armazenar ou transmitir e reconstruir posteriormente. Em outras palavras, você pega um objeto na memória RAM e faz uma representação em disco do objeto para recriá-lo a qualquer momento no futuro.
Quando a série consequente de bits é relida de acordo com o formato de serialização, os usuários podem usá-la para criar um clone idêntico do objeto original. Muitas vezes, esse processo não é tão direto quanto pode parecer para muitos objetos complexos.
A serialização de um objeto também é chamada de empacotamento de um objeto em algumas situações. A operação oposta, extrair uma estrutura de dados de uma série de bytes, é a desserialização.
Quando você aplica o atributo SerializeField a um campo, ele comanda o Unity para salvar ou restaurar seu estado. O Unity SerializeField força o Unity a serializar um campo privado.
Observe que, quando o Unity serializar seus scripts, ele serializará apenas seus campos públicos. Se você deseja serializar seus campos privados, deve adicionar o atributo SerializeField a esses campos.
O Unity serializa os componentes de script, recarrega os novos assemblies e recria os componentes de script de suas contrapartes serializadas. Esse processo é feito no sistema interno de serialização do Unity, não com a funcionalidade de serialização do .NET.
O sistema de serialização pode fazer o seguinte:
• Serializar campos não estáticos públicos (de tipos serializáveis)
• Serialize campos não estáticos não públicos marcados com o atributo SerializeField.
O sistema de serialização não pode fazer o seguinte:
• Serialize campos estáticos.
• Serializar propriedades.
O Unity pode serializar campos dos seguintes tipos:
• Todas as classes de UnityEngine.Object
• Todos os tipos de dados primários, incluindo int, string, float e bool.
• Alguns tipos integrados, incluindo Vector2, Vector3, Vector4, Quaternion, Matrix4x4, Color, Rect e LayerMask.
• Arrays e listas de um tipo serializável
• Enums
• Estruturas
Para saber mais sobre tipos serializáveis, você pode verificar a serialização de script na documentação do Unity.
Se esta é a pergunta que o atraiu para este artigo, deixe-me dizer-lhe: Unity não serializará o Dictionary. Ainda assim, você tem opções: Armazenar uma List<> para chaves e uma List<> para valores e misturá-los em um dicionário não serializado em Awake() . Você não poderá modificar o Dicionário e salvá-lo, mas pode ajudá-lo em muitos outros casos.
Para entender quando você deve usar SerializeField ou variáveis públicas, você deve saber a diferença entre variáveis públicas e privadas :
As variáveis públicas podem ser acessadas por qualquer outro código no mesmo assembly ou outro assembly que faça referência a ele. O nível de acessibilidade de membros públicos de um tipo é diferente.
Variáveis privadas só podem ser acessadas por código na mesma classe ou struct.
Assim, outras classes podem fazer referência a variáveis públicas, enquanto variáveis privadas não. No Unity, os campos públicos são exibidos no Inspetor. Os campos públicos são serializáveis por padrão, assim como as áreas que você marca com SerializeField. Você pode preferir SerializeField em vez de público porque pode querer ver sua variável no Inspetor, mas mantê-la inacessível.
Existem quatro status diferentes que suas variáveis podem ter.
• Eles podem ser públicos, aparecendo no Inspector e também acessíveis por outros scripts.
• Eles podem ser [SerializeField] privados, aparecendo no Inspector, mas não acessíveis por outros scripts.
• Eles podem ser públicos [HideInInspector], não aparecem no Inspector, mas podem ser acessados por outros scripts.
• Eles podem ser privados, nem mostrados no Inspector nem acessíveis por outros scripts.
2,055 visualizações
Tudo sobre o desenvolvimento de jogos em um só lugar. Toda semana trazemos muitas notícias, vídeos, entrevistas, dicas, tutoriais, calendário, ferramentas e serviços para você, que deseja realizar seu sonho de criar games!
Receba novidades exclusivas sobre desenvolvimento de jogos em seu email!
© Copyright 2024 │ Over Games – O seu portal sobre desenvolvimento de jogos │ Todos os direitos reservados.
Cookie | Duração | Descrição |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Top demais