Tutorial de Programação Básica em Unity – Parte 4 – Escopo e Modificadores de acesso

Vamos aprender um pouco sobre o Escopo e os Modificadores de Acesso neste tutorial.

No tutorial passado, vimos como utilizar as estruturas de repetição para reutilizar um código várias vezes. Agora, vamos aprender como deixar seu código acessível por meio do escopo e dos modificadores de acesso.

Escopo e Modificadores de acesso

Primeiramente vamos falar um pouco sobre escopo.

Escopo

O escopo define até onde você pode acessar as suas variáveis e funções. No geral, o escopo é delimitado pelas chaves: { e }.

No exemplo de código abaixo, veja que você pode acessar a variável vidas em qualquer função, mas não consegue acessar a variável inimigo fora da função CriaInimigos. Isso ocorre porque o escopo da variável inimigo é a função CriaInimigos.


public class UmaClasseQualquer : MonoBehaviour {

	int vidas;

	public void CriaInimigos(string inimigo){
		//Posso usar a variavel vidas e inimigo aqui dentro
	}

	public void AdicionaVida(){
		//Consigo acessar a variavel vidas da classe 
		//mas nao tenho acesso a variavel inimigo
		vidas = vidas + 1;
	}
}


Modificadores de acesso

Os modificadores de acesso são usados para que você consiga acessar variáveis e funções de uma classe em outra. Elas podem ser Publicas (public) ou Privadas (private).

As variáveis (ou funções) públicas podem ser acessadas por outras classes e, no caso das variáveis, elas aparecerão no Unity, onde você pode definir os valores delas no painel de inspeção.

inspection

As variáveis (ou funções) privadas não podem ser acessadas fora da classe em que foram definidas. Por padrão do C#, todas as variáveis declaradas são privadas. É uma boa prática usar variáveis privadas e só deixar públicas as que você realmente precisa.

O exemplo abaixo mostra duas classes diferentes e como elas conseguem acessar informações umas das outras.



public class UmaClasseQualquer : MonoBehaviour {

	public int vidas;
	private int idade; //Não pode ser chamado fora da classe

	//Essa função é exclusiva desta classe e não pode ser usada em outras classes
	private void CriaInimigo(string inimigo){
		//Posso usar a variável vidas e inimigo aqui dentro
	}

	//Essa funcao pode ser chamada em outras classes
	public void AdicionaVida(){
		//Consigo acessar a variável vidas da classe 
		//Mas não tenho acesso a variável inimigo
		vidas = vidas + 1;
	}
}


public class OutraClasseQualquer : MonoBehaviour {
	
	public void Start(){
		//Inicializando a classe
		UmaClasseQualquer classe = new UmaClasseQualquer(); 

                //Usando uma função pública
		classe.AdicionaVida(); 

		//Usando uma variável pública
		print (classe.vidas); 
	}
}

Veja como o Intellisense (essa janelinha que mostra as funções e variáveis disponíveis para uso) mostra o método AdicionaVida e a variável vidas:

intellisense

 

É isso aí, pessoal! No próximo tutorial, vamos ver um pouco sobre as funções Start e Awake do Unity!

Abraços!

Filipe Leal

Filipe Leal

Bacharel em Ciência da Computação pela UDESC e certificado como Microsoft Specialist. Atualmente trabalha como programador na Basecorp Learning Systems. Reside em Edmonton - Canadá. Faixa preta com 1o. grau em Pa-kua, tem preferência por jogos de Ação/Aventura, RPG, Luta e Party Games. Seu jogo favorito é The Legend of Zelda - Ocarina of Time.

Send this to a friend