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