void Start() { //Debug.Log(Application.persistentDataPath); micelio = new Micelio(token, "dev"); Session session = new Session("pt-BR", "1"); session.SetName("game start"); micelio.StartSession(session); Guerreiro player = new Guerreiro(10, 25, "soldier", 150, 130); Espada espada = new Espada(5.5f, 1.5); player.Atacar(espada, "wave 1"); player.Atacar(espada, "wave 2"); micelio.CloseSession(); }
// O metodo Start eh chamado ao criar o objeto com esse script no jogo. void Start() { //Imprimindo um texto no console (costuma aparecer perto da parte que tem os arquivos, o console) print("Hello, World!"); //criar variavel // estrutura: 'tipoDaVariavel' 'nomeDaVariavel' '=' 'ValorInicialDaVariavel' ';' //exemplos de tipo: string, int, float, Vector3 string primeiraVariavel = "Caina "; string textoPraConcatenar = "eh um bom professor"; // concatenação: print(primeiraVariavel + textoPraConcatenar + ".\nVc nao acha?"); //matematicas var meuDouble = 10.5; // declarando double, mas usando 'var' float meuFloat = 20.3f; // float eh numero com virgula, soh que usa menos espaço na memoria que um double. //tem que colocar um 'f' depois de um numero float pro compilador entender que eh float e nao double. print(meuDouble * meuFloat); // alem de multiplicacao ( * ) temos: + - / //variavel booleana bool celularFazContas = true; bool dispositivo2FazContas = false; // && eh a mesma coisa que o operador 'e' ; || eh a mesma coisa que o operador 'ou' print("operacao ou: " + (celularFazContas || dispositivo2FazContas)); // se um dos dois for True, resultado eh True print("operacao e: " + (celularFazContas && dispositivo2FazContas)); // resultado eh true soh se os dois operandos forem True print("operacao 'nao'" + (!celularFazContas)); //o resultado eh o oposto do operando. !True == False , !False == True //concicionais if (dispositivo2FazContas) { //soh vai executar isso se o dispositivo2FazContas print("O dispositivo 2 faz contas. Yeah"); } else if (celularFazContas) { print("Tah, tranquilo: o celular faz a conta... ufa"); } else { print("Lascou! Como vamos fazer a conta? Socorroooooooo"); //nessa situacao, nenhum dos dispositivos faz contas } var meuInt = 0; switch (meuInt) { case 0: print("meu Int vale 0"); break; case 1: print("meu Int vale 1"); break; case 2: print("meu Int vale 2"); break; case 3: print("meu Int vale 3"); break; default: print("meu Int vale um negocio que eu nao estava esperando"); break; } /* Input no C# puro seria feiro assim, mas na Unity eh outra história. * Os Inputs mais comum na Unity são: Input.GetKey("tecla") exemplo: Input.GetKey("w") para saber * se a tecla 'w' está sendo pressionada. Input.GetMouseButton(0) para saber se o botão esquerdo * do mouse está sendo pressionado. E também se usam muito os botões, que são um componente (Button), * e fazem parte do sistema de UI (User Interface) da Unity. * //input no C# puro: * string testString; * testString = Console.ReadLine(); * print("Input coletado " + testString); */ int iterador = 5; // mais opções: > , < , >= , <= , == (igual), != (diferente) while (iterador > 0) { print("Repetindo com while: " + iterador); iterador = iterador - 1; // eh igual a escrever iterador--; } print("eu saí do loop, yeah"); for (int i = 6; i > 0; i-- /*i = i+1*/) { print("Repetindo com for: " + i); } /*obs: na Unity não se usa loop com tanta frequência no começo, porque geralmente o que deve * se repetir eh colocado no metodo Update, que executa varias vezes por segundo. */ // criando vetor int[] meus5Numeros = { 2, 4, 3, 2, 5 }; int[] numeros = new int[999]; // usa um elemento do vetor print(numeros[2]); numeros[2] = 4; // modifica um elemento do vetor print(numeros[2]); //quantos elementos tem no vetor? print(numeros.Length); //funcoes! /* podemos criar funcoes, que eh quase um sinonimo de metodos, para fazer varias operacoes * de uma vez soh. Perceba que a linha abaixo vai executar varias impressoes. Confira a definicao * dessa funcao lah mais para o fim do codigo, por favor, para ver onde foi definido o que ela faria.*/ ImprimeVariasCoisas(); /*Alem de fazer varias coisas de uma vez soh, funcoes podem retornar um resultado para a gente. * A funcao CriaVetor esta retornando um vetor de numeros inteiros. Confira tambem a definicao lah mais abaixo */ int[] vetorCriadoComFuncao = CriaVetor(); print(vetorCriadoComFuncao.Length); /*funcoes tambem podem receber parametros para que considerem eles quando vao executar. * veja soh: essa funcao Soma3Numeros recebe 3 parametros x,y,z e retorna a soma deles. * */ int x = 1; int y = 2; int z = 9; int soma = Soma3Numeros(x, y, z); print("3 numeros somados com funcao: " + soma); //classes: /*classes sao formadas por atributos e metodos, e sao ótimas para dividir o programa, e não * ficar um codigo grande demais em um único arquivo. Para esse tutorial, criei mais classes * no mesmo arquivo, mas geralmente se faz uma classe por arquivo! * * Classes conceitualmente sao moldes para objetos, que tem suas caracteristicas (atributos) * e as coisas que o objeto eh capaz de fazer (seus metodos). * * Confira a definicao da classe Guerreiro lah mais no final desse arquivo, e então acompanhe * aqui a criacao e utilizacao de um objeto dessa classe. * */ //criando um objeto Guerreiro caina = new Guerreiro(); //alterando atributos publicos caina.ataque = 20; caina.vida = 100; // usando atributo publico print(caina.ataque); //criando mais um guerreiro Guerreiro guerreiro = new Guerreiro("Joao"); print("vida do " + guerreiro.nome + ": " + guerreiro.vida); caina.Atacar(guerreiro); print("vida do " + guerreiro.nome + ": " + guerreiro.vida); //vida reduziu depois do ataque. //criando objeto da subclasse Berseker, que herda de Guerreiro Berseker brutus = new Berseker("Brutus"); brutus.Atacar(guerreiro); print("vida do " + guerreiro.nome + ": " + guerreiro.vida); print("nome do berseker: " + brutus.nome); }