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.
Download

Apresentação05 - AT-Online