NOÇÕES BASICAS E ESSENCIAIS PARA DESENVOLVER GAMES (UNITY)
Desenvolvimento de Games noções basicas essenciais (UNITY)
Seja, muito bem vindo!
unity é uma engine (programa/ambiente) grafica onde desenvolvemos os games com suporte na linguagem C#. É de suma importancia entender o que é o game object e como ele funciona, o GameObject como o proprio nome ja diz é um objeto de jogo em 3D, mesmo que o game seja 2D, o ambiente dele é feito em 3D portanto ele te um componente transform que tem os 3 eixo para movimentar e rotacionar na cena, a cena seria o local onde uma camera transmite o visual do jogo, toda cena é necessaria de uma camera para visualização do jogo.
o mais impressindivel entender são os components, todos os game object tem seu component mesmo que ele seja vazio ele ainda terá o "transfom", para quem estuda ou entende de react fica mais facil o entnedimento, um objeto tendo component é possivel acessar as propriedades e funções dos componentes desse objeto pelo script. um script tambem é um component cujo pode ser acessado pelo nome do script.
para que haja um jogo é necessario manipulção desses components, para que player interaja com personagens e o ambiente ou para que um personagem interaja com outro personagem.
para acessar o componente de um game object via script usamos o GetComponent() => um metodo do proprio unity, é possivel acessar a documentação no endereço: https://docs.unity.com/ um exemplo: quero acessar o component transforme do objeto
--temos os metodos que seram exlicados mais pra frente--------------- Awake() Start() Update() LateUpdate()
vamos focar no start e no update: o Start- sempre que damos start ou quando um Game Object é instanciado, a função start será executada somente uma vez e antesde de qualqeur outra. O Update - executa varias vezes uma taxa por quadros "frames", será executado até que o objeto seja destruido ou que o jogo pare.
public void Start() { //alocando o component desse objeto em uma variavel;
Transform T = GetComponent<Transform>();
}
*nesse caso você poderia simplesmente criar uma variavel publica Tranform e arrastar o proprio component "a mão" para o campo.
uso do metodo update() vamos supor que você queira colocar o movimento em um objeto em um eixo,para que seja feito uma atulização igual em qualqeur dispositivo é necessario usar o tempo para regular isso.
public void Update() {//lembrando que T seria nosso transform
T.Position += 1 * Time.deltaTime();
// em vez dele teletansportar ele faz o movimento pequeno a cada frame se multiplicar ou aumentar o numero que ele está somando ele vai se mover mais rapido, com isso é possivel criar uma aceleração
}
//caso queira rotacionar no eixo Y //usaremos o metodo rotate
T.Rotate += 1 * Time.deltaTime();
//caso queira rotacionar para lado contrario usa um valor negativo -1
Em breve vou gravar uma aula simples, não ensinando fazer um jogo e sim entendendo como pensar o desenvolvimento do jogo e que qualquer pessoa possa entender como funciona o unity. :)
@design_shake