Truques de programação do Unity

Quando se trata de programação em Unity, há uma infinidade de palavras-chave programação úteis e comandos para melhorar o fluxo de trabalho no editor e acelerar o processo de desenvolvimento.

Algumas das palavras-chave são dedicadas à depuração, enquanto outras são projetadas para separar a lógica do editor da lógica do script.

1. '[SerializeField]' Atributo

Por padrão, Unity oculta as variáveis ​​privadas do inspetor, mas ao adicionar um atributo '[SerializeField]' antes delas, elas se tornarão configuráveis ​​no inspetor, mantendo-as inacessíveis de outros scripts.

[SerializeField]
private int myPrivateVariable;

2. '[HideInInspector]' e Atributos '[System.NonSerialized]'

Ambos os atributos '[HideInInspector]' e '[System.NonSerialized]' têm uma função semelhante, para esconder variáveis ​​públicas do inspetor, porém, eles diferem um pouco em termos de serialização.

A diferença entre '[HideInInspector]' e '[System.NonSerialized]' é que '[HideInInspector]' apenas ocultará a variável do inspetor, no entanto, Unity continuará a serializá-la ( o que significa que o valor padrão pode ser diferente daquele fornecido no código), '[System.NonSerialized]' por outro lado, não apenas ocultará a variável do inspetor, mas também sinalizará Unity para não serialize-o (o que significa que o valor padrão será redefinido entre as sessões para aquele fornecido no código).

[HideInInspector]
public int myInternalVariable = 0; //Will always be 0 after the first initialization, so if you decide to change the value in the script, it may not always reflect in the Editor. Often used to remove clutter from the inspector.

[System.NonSerialized]
public int myNonSerializedVariable = 1; //The initial value will always be 1, or whatever value is set. Often used to mimic a private variable, while keeping it accessible from within other scripts.

3. '[ExecuteAlways]' Atributo

'[ExecuteAlways]' força o script a ser executado no modo de edição e no modo de edição Prefab, mesmo quando o jogo não está em execução. Isso pode ser útil para fins de teste e depuração.

O atributo é adicionado antes da declaração da classe:

[ExecuteAlways]
public class MyScript : MonoBehaviour {
    // ...
}

4. 'Debug.Break()'

'Debug.Break()' pausa o editor.

Esta função é útil quando você deseja verificar determinados valores no inspetor e não consegue pausá-lo manualmente.

void Update() {
    if (someCondition) {
        Debug.Break();
    }
}

5. '[Range]' Atributo

O atributo '[Range]' permite que você crie um controle deslizante no Editor para um flutuante público ou variável int, que pode ser útil para ajustar valores em movimento, de uma maneira mais amigável. Basta fornecer os valores mínimo e máximo, assim:

[Range(0f, 1f)]
public float myFloatVariable;

Comente abaixo suas dicas e truques de programação favoritos em Unity.

Artigos sugeridos
Lista de palavras-chave úteis em C#
Introdução à linguagem de script Unity C#
Compreendendo a arquitetura baseada em componentes do Unity
Criando um GrabPack no Unity inspirado em Poppy Playtime
Criando um efeito bullet time no Unity
Criando objetos interativos no Unity
Implementando interações cinéticas no Unity