Buscar

Unity_Basico Aula 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 1 –
Começando do 
Básico em C#
ESZI043 – Programação Baseada em 
Componentes Para Jogos
Prof. Mário Minami
3Q18
Keywords (Palavras-Chave)
• Símbolos ou Palavras especiais, que fazem compilador executar 
tarefas específicas, por exemplo, a keyword class no começo de uma 
linha informa ao compilador que estamos criando uma classe. Uma 
declaração de classe é a linha de código que dirá isso ao compilador.
class Minami
{
}
• Cada classe necessita um nome, como no exemplo, Minami. Neste 
caso a palavra Minami torna-se um novo identificador. Isto será 
assumido pelo compilador dentro dos limites do escopo deste 
identificador (enquanto ele existir).
ESZI043 - PBCJogos - Minami 2
Classe
• Para criar uma classe chamada de Minami usamos a keyword
class, que deve preceder a palavra que será o novo identificador 
para a classe a ser criada.
• O Conteúdo de Minami é definido entre as chaves. Após a definição 
da classe, o abre chaves { é seguido pelas atribuições que Minami
necessitará para tornar-se Minami de fato. Ao final das definições 
apropriadas dos conteúdos de Minami, o fecha chaves } indicará o 
término da definição da classe Minami.
class Minami {}
• Duas classes não podem compartilhar o mesmo nome, nem ter 
espaço em branco no nome.
ESZI043 - PBCJogos - Minami 3
Maiúsculas e Minúsculas
Keywords sempre 
começam com letras 
minúsculas pois C# 
diferencia das 
maiúsculas: Class e class
são distintas e possuem 
significados diferentes. 
• A primeira poderia ser um 
identificador e a segunda 
é uma keyword!
01
Uma prática comum é 
começar as 
declarações de classe e 
deixá-las vazias, para 
definir os 
identificadores a 
serem usados.
02
Mas a classe Minami
ainda não pode ser 
usada pelo Unity3D, 
pois carece das 
informações mínimas 
para isso.
03
Exemplo de Código que o Unity3D “roda”
using UnityEngine; 
using System.Collections; 
public class Exemplo: MonoBehaviour { 
//Usar isto para inicialização 
void Start () {
}
//Atualizada a cada frame
void Update () {
}
}
ESZI043 - PBCJogos - Minami 5
Outras 
boas 
práticas:
• Espaços em branco para separar identificadores
• Comentários para descrever as linhas
• Mudança de linha para organizar as classes
• Tabulação para deixar claro o que está dentro de cada classe
void MinhaFuncao(){} void OutraFuncao(){}
• É executada igualmente que
void MinhaFuncao() {
// A primeira função
} 
void OutraFuncao() {
// A segunda função
}
• Mas do segunda maneira, parece um programador educado...
ESZI043 - PBCJogos - Minami 6
Blocos 
de 
Código
• Blocos são coleções de declarações agrupadas para serem executadas
• A execução do código é usualmente controlada pelas chaves {}.
• Uma boa prática é agrupar blocos na mesma tabulação, para facilitar a leitura do código.
void MinhaFuncao()
{
// primeiro bloco de código
int i = 0;
int j = 17;
while (i < 10)
{
// segundo bloco de código
print(i);
i++;
if (j < 20)
{
// terceiro bloco de código
j++;
i++;
}
}
}
ESZI043 - PBCJogos - Minami 7
Classes parciais e aninhadas
Uma classe é uma coleção 
de instruções e dados
Algumas classes são 
chamadas de parciais para 
serem divididas em vários 
arquivos diferentes e 
facilitar o uso por outros 
programadores
Outras classes podem 
aparecer dentro de outras e 
são chamadas de aninhadas
As instruções podem ser 
referenciadas como funções 
ou métodos
O dado armazenado numa 
classe é um campo ou 
propriedade
Classes são flexíveis e 
facilmente modificáveis, mas 
esta flexibilidade requer um 
pouco de complexidade
ESZI043 - PBCJogos - Minami 8
Exemplo de partial class
public partial class Empregado
{
public void Trabalhando() 
{
}
} 
public partial class Empregado
{
public void Almocando()
{
}
}
ESZI043 - PBCJogos - Minami 9
Exemplo de classe aninhada
class Conteiner
{
class Aninhada
{
Aninhada() { }
}
}
ESZI043 - PBCJogos - Minami 10
Objetos 
Instanciados
POO foi inventada para associar dados e lógica nos mesmos 
pacotes de código
Uma classe escrita cria modelos e instruções para um novo objeto
Qualquer cópia de objetos pode ser construída usando os 
modelos
Instanciar é criar um objeto de uma classe modelo
Cada objeto instanciado é uma instância da classe que foi escrita
Uma classe em si não é uma instância criada dela mesma, ou seja 
ela não é um objeto, apenas um plano para fazermos objetos.
Uma classe pode criar mais de uma instância de um objeto, e 
quando isto ocorre temos o processo de instanciamento.
ESZI043 - PBCJogos - Minami 11
Mensagens, Eventos, Abstração, 
Encapsulamento e Interface
Uma instância de 
um objeto 
comunica-se com 
outro objeto 
através de 
mensagens e 
eventos
01
Num telefone fixo, 
temos acesso ao fone, 
às teclas, ao botão do 
gancho etc. Não temos 
acesso à sua placa 
interna com seus 
componentes 
eletrônicos. 
Interagimos com uma 
Abstração do telefone, 
suficiente para o uso.
02
A abstração nos 
apresenta 
somente as partes 
necessárias ao uso 
da classe e nos 
oculta as 
restantes, que 
ficam escondidas, 
ou encapsuladas.
03
A interação com uma 
classe é feita pela 
Interface (como os 
botões do telefone 
fixo)
04
ESZI043 - PBCJogos - Minami 12
Polimorfismo, Herança e Agregação
• Partes de um telefone fixo poderiam ser aproveitados num telefone 
celular e assim também elementos de código, ou classes podem ser 
reaproveitados num programa para outras aplicações, mesmo que 
tenham que ser alterados para isso em outros dispositivos 
(componentes) e quando isso ocorre temos o Polimorfismo.
• A Herança permite que classes compartilhem atributos e 
comportamentos semelhantes.
• Agregação de classes diferentes permite que uma única classe 
agregue muitos componentes ou classes diferentes.
ESZI043 - PBCJogos - Minami 13
Variáveis seus identificadores e das classes
• Programação é combinação de comportamento e dados
• Variáveis são poucos bits de informação de aspectos do mundo real: 
gravidade, velocidade, intensidade da luz, cor...
• O nome de uma variável é um identificador.
• Uma boa prática de programação é escolher bons identificadores para 
as variáveis, diferentes de x, y, z, i, j, k, principalmente para as classes, 
para fugir de Minami
ESZI043 - PBCJogos - Minami 14
Tipos de dados e declaração de variáveis
• Variáveis podem receber dados diferentes, logo o compilador 
necessita saber qual tipo de dado será (nome, valor, bit lógico, etc)
ESZI043 - PBCJogos - Minami 15
Declaração de Variáveis: Sempre dentro de 
uma classe
class UmaClasse
{
int UmNumero;
}
✓ OK
int UmNumero;
class UmaClasse
{
}
X Erro na Compilação! 
• Declarar e atribuir o valor na mesma linha de instrução é a inicialização dinâmica:
class UmaClasse
{
int UmNumero = 0;
}
ESZI043 - PBCJogos - Minami 16
Nomes de Variáveis
• Muito grandes são difíceis de lembrar e fácil de errar a digitação
• Só abreviaturas geram confusão e falta de clareza
• Não podem começar com números
• Não podem ter espaço em branco no meio
• Alguns caracteres reservados são proibidos: $, - , ^
• Letra Maiúscula e Minúscula são notadas diferentes
• @ pode começar o nome, mas não no meio
ESZI043 - PBCJogos - Minami 17
Variáveis no Unity3D
• Criando um Projeto 
UsandoVariaveis 3D no 
Unity3D
• Criando um script Exemplo:
• As variáveis SomeInt e 
OutroIntNão aparecem 
no Inspector, pois estão 
encapsuladas.
• Para serem uma Interface, 
temos de usar a keyword
“public”
ESZI043 - PBCJogos - Minami 18
Acesso pelo 
Inspector:
• Alterar o código incluindopublic
modificando a definição das 
variáveis:
• Crie um Cube em Hierarchy
• Anexe o script ao Cube, 
arrastando-o no Inspector
ESZI043 - PBCJogos - Minami 19
Atribuições de 
Variáveis
• O script Variaveis ao lado inicializa 
MinhaVariavel e atribui valor a ele outras 
três vezes
• Associando este script a Cube, teremos:
ESZI043 - PBCJogos - Minami 20
Transformações
• Inserindo uma Sphere em Hierarchy e um novo 
Script ControleEsfera
ESZI043 - PBCJogos - Minami 21
Usando Control...
• A posição em x da esfera 
será Control
• A posição em y será 
2*Control
• A posição em z será 
Control2
• Verificar, mudando Control
em Inspector
ESZI043 - PBCJogos - Minami 22
OutroControl:
• Inserindo outra variável public:
public float OutroControl;
• Colocando em OutroControl um valor 
diferente de 0 e, variando Control (pode ser 
com posicionando a sete do mouse no 
caixa da variável, pois ela funciona como 
um botão “slider”
• Qual o movimento da Esfera?
ESZI043 - PBCJogos - Minami 23
Introdução aos tipos de dados
• bool ... 8 bits
• char ... 8 bits
• string ... Conjuntos de char
• int, float ... 32 bits, mas usados diferentemente. Existe int64
• double ... 64 bits
• objeto ... Tamanho variável, no mínimo 8 bits (máx a princípio não há)
ESZI043 - PBCJogos - Minami 24
Casting: força a conversão de tipos
float a = 0.9f;
int b = (int) a;
ESZI043 - PBCJogos - Minami 25
Comentários numa linha
• Um comando que inicia com a dupla barra // à esquerda e não será 
compilado, ou seja, não gera erro:
// aqui começa um comentário
• Pode ser depois do código:
int u = 0; // zera variável
• Tudo o que aparecer depois do // até o fim da linha, será ignorado 
pelo compilador
ESZI043 - PBCJogos - Minami 26
Comentários multilinhas
• Um comentário de várias linhas pode começar com // em cada uma, ou /* 
e */, para iniciar e terminar:
/* Este é um comentário de mais de uma
Linha e não precisa de um // em cada
Início de linha */
• Mesmo dentro de uma instrução, tudo o que estiver dentro do /* e */ será 
ignorado:
while (algumInt < /*10*/ 100) { // O 10 é ignorado!
print(algumInt);
algumInt++;
}
ESZI043 - PBCJogos - Minami 27
Colapsar comentários multilinhas e Sumário
• Quando um comentário multilinhas inicia com /* e termina com */
Ele poderá ser colapsado (ocultado) no editor:
• Digitando /// o editor inclui um campo de Sumário, que também 
pode ser ocultado:
ESZI043 - PBCJogos - Minami 28

Outros materiais

Outros materiais