C# - Unity Introdução Criando um script Mono Develop Uma IDE Toda inicialização de comentários é feita com Primeira impressão - Sintaxe using UnityEngine; using System.Collections; public class MainPlayer : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } Métodos Start e Update // Use this for initialization void Start () { } // Update is called once per frame void Update () { } Variáveis • Float • Bool • String • Int • Double Operadores Matemáticos Soma = “+” Multiplicação = “*” Divisão = “/” Subtração = “-” Operadores de tipo e relacionais Expressão Descrição x<y Menor que x>y Maior que x <= y Menor que ou igual a x >= y Maior que ou igual a x is T Retorna true se x for T, caso contrário, false Operadores de igualdade Expressão x == y x != y Descrição Igual Não é igual a Operadores de atribuição e anônimos Expressão Descrição = Atribuição x op= y Atribuição composta. Oferece suporte a estes operadores: +=, =, *=, /=, %=, &=, |=, !=, <<=, >>= (T x) => y Função anônima (expressão lambda) EX(del myDelegate = x => x * x;) Impressão de variáveis ou mensagens no console Debug.Log(“Ola. “ + nome); Exercício- 01 • Crie três variáveis inteiras (num1, num2) • Atribua um valor qualquer nas variáveis num1 e num2 • Mostre o valor das variáveis num1 e num2 no console • Crie uma rotina de programação para trocar os valores de num1 com num2 e mostre novamente o valor das variáveis num1 e num2 http://at-online.esy.es/Alunos/Game/ Operador E, e OU Operador Lógico Descrição && AND = E || OR = Ou ! NOT = Não int num1 = 5; int num2 = 10; bool verdadeiro = num1 < num2 && num2 > num1; bool falso = num1 < num2 || num2 < num1; bool cFalso = num1 < num2 && num2 <= num1; bool cVerdadeiro = num1 > num2 || num2 <= num1; Estruturas Condicionais IF e else int num1 = 5; int num2 = 10; if (num1 < num2 && num2 > num1) { Debug.Log(“Esta opção cera verdadeira"); } Estruturas Condicionais (se não) IF e else int num1 = 5; int num2 = 10; if (num1 < num2 && num2 > num1) { Debug.Log(“Esta opção cera verdadeira"); } else { Debug.Log(“Nenhuma das opções anteriores"); } Estruturas Condicionais compostas, IF e else int num1 = 5; int num2 = 10; if (num1 < num2 && num2 > num1) { Debug.Log(“Esta opção cera verdadeira"); } else if (num1 < num2 || num2 < num1) { Debug.Log(“Esta opção cera falsa"); } else { Debug.Log(“Nenhuma das opções anteriores"); } Estruturas de Controle de Fluxo e Repetição O Switch int num1 = 5; switch(num1){ case 5: Debug.Log("O numero é cinco"); break; case 10: Debug.Log("O numero é dez"); break; default: Debug.Log(“Não sei"); break; } O While int idade = 18; while(idade < 20) { Debug.Log(idade); idade = idade+1; } O do-while int c = 0; do { Debug.Log(c); c = c+1 // ou poder usar a função de incremento “++” ficando c++. } while(c > 5); O for for( int c = 0; c<=10; c = c+1) { Debug.Log(“Felipe de Oliveira”); } /*onde int c = 0 é a inicialização da variavel, c<=10 é a expressão lógica e c = c+1 é o salto(o incremento) o valor da variável será somando de 1 em 1, se eu tivesse colocado c = c+2 ele somaria de 2 em 2 */ Exercício- 02 •Criar uma estrutura de repetição onde devera mostrar na tela os números impares e pares até 20. Vetores e Matriz •Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória. •A individualização de cada variável de um vetor é feita através do uso de índices. •Os Vetores são matrizes de 1 só dimensão. int[] vetor = new int[10]; vetor[0] = 1; Será armazenado o numero 1 na variável vator[0] Vetor[1] = 2; Será armazenado o numero 2 na variável vator[1] vetor[2] = 3; Será armazenado o numero 3 na variável vator[2] Vetor[3] = 4; Será armazenado o numero 4 na variável vator[3] vetor[4] = 5; Será armazenado o numero 5 na variável vator[4] Vetor[5] = 6; Será armazenado o numero 6 na variável vator[5] vetor[6] = 7; Será armazenado o numero 7 na variável vator[6] Vetor[7] = 8; Será armazenado o numero 8 na variável vator[7] vetor[8] = 9; Será armazenado o numero 9 na variável vator[8] Vetor[9] = 10; Será armazenado o numero 10 na variável vator[9] int[] vetor = new int[10]; for(int x = 0; x < 10; x++){ vetor[x] = x; } string[] vetor = new string[4]; Vetor[0] = “Felipe ” Vetor[1] = “de ” Vetor[2] = “Oliveira ” Vetor[3] = “Ferreira ” Debug.Log(vetor[0], vetor[2], vetor[3], vetor[4]); Exercício- 03 •Criar um vetor e estar armazenando nele os números impares e mostre na tela os resultados; •Criar um outro vetor para esta armazenando nele os números pares e mostre na tela os resultado. int[,] matriz = new int[5,5]; 0 5 10 15 20 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 int[,] matriz1 = new int[5, 5]; int numero = 1; for(int c = 0; c < 5; c++){ for(int l = 0; l < 5; l++){ matriz1[c, l] = numero; numero += 1; Debug.Log(matriz1[c, l]); } } Exercício- 04 •Criar uma matriz de 4 colunas e 10 linhas onde será armazenando na coluna 0 os números impares até 10 e na coluna 1 os números pares até 10 e na coluna 3 os números impares de 100 até 81 e na coluna 4 os números pares de 100 até 82. E mostrem na tela o resultado. Métodos “Funções” “Ações” public class ConsumoEnergetico{ public int calculoEnergia(int energia, int populacao){ int consumoTotal = energia - populacao; return consumoTotal; } } public void calculoEnergia(int energia, int populacao){ int consumoTotal = energia - populacao; return consumoTotal; } Classes e Orientação a Objetos Ideia da Caneta public class ConsumoEnergetico{ public int calculoEnergia(int energia, int populacao){ int consumoTotal = energia - populacao; return consumoTotal; } } ConsumoEnergetico con = new ConsumoEnergetico () Modificadores de acesso Public class ExemploPublico { public int x; public int y; } Modificadores de acesso Protected class A { protected int x = 123; } class B : A { static void Main() { A a = new A(); B b = new B(); b.x = 10; } } Modificadores de acesso private class ExemploPrivado { private int i; double d; } Exercício- 05 Em um jogo de estratégia, preciso saber, a partir do consumo total de comida (população x consumo per capita) e da minha produção, o quanto sobrou (ou faltou) de comida. A minha função CalcularEstoque deve calcular e retornar a diferença entre o consumo total e minha produção, recebendo os parâmetros populacao, consumo e producao. Se esse valor for positivo, significa que sobrou essa quantidade de comida. Se o valor final for negativo, significa que não produzi comida o suficiente, e vou precisar retirar esse valor de algum lugar. Considere todos os valores como inteiros. Foreach string[] armazena = new string[4]; armazena [0] = "Felipe"; armazena [1] = "de"; armazena [2] = "Oliveira"; armazena [3] = "Ferreira"; string[] valores = new string[4]; for(int i = 0; i < 3; i++){ if(armazena[i] == 0){ valores[i] = armazena[i] + " "; }else{ valores[i] = " " + armazena[i] + " "; } string jutar = string.Join(string.Empty, valores); Debug.Log(jutar); } string[] valores = new string[4]; int indice = 0; foreach(string texto in armazena){ if(texto.Equals(armazena[0])){ valores[indice] = texto + " "; }else{ valores[indice] = " " + texto + " "; } indice++; string jutar = string.Join(string.Empty, valores); Debug.Log(jutar); } Exercício- 06 Crie uma função “Procurar” que recebe um array de strings “coleção” e uma string “busca” como parâmetros e retorna verdadeiro se encontrar a busca e falso caso contrário. Namespace namespace Teste{ public class T{ } } Métodos construtores namespace Teste{ public class Name{ //Metodo construtor default public Name(){ } } } public class Separa{ public Separa(string juntos){ string[] array = juntos.Split (char.Parse(" ")); Debug.Log ("Processo inverso"); foreach(string texto in array){ Debug.Log (texto); } } } Separa separar = new Separa (juntar1) Exercício- 07 Crie uma classe chamada Carta. O construtor recebe os parâmetros numero e naipe, que são guardados nos respectivos atributos. Esse objeto também tem o método Exibir(), que mostra as informações da carta na tela de maneira legível (ex. “7 de paus”) Exercício- 08 Temos um array com 5 elementos, com o nome de 5 itens que a personagem carrega na mochila. Quando a personagem chega numa porta, queremos detectar automaticamente se tem ou não uma chave para abri-la. Crie um script TemChave que percorre o array comparando se cada item tem o nome “chave” e escreve verdadeiro se encontrar alguma. Caso contrário, o script deve escrever falso.