Unity Como Gerar um objeto em cena, como Instanciar um objeto, como fazer um objeto surgir / aparecer Unity 3D Tutorial



Unity Como Gerar um objeto em cena, como Instanciar um objeto, como fazer um objeto surgir / aparecer Unity 3D Tutorial , em resumo como fazer um determiando objeto 3D , prefab ou efeito de particula surgir na cena com unity de maneira absurdamente explicada ! 

Aprenda a Criar Jogos Completos em 2D e 3D ! https://go.hotmart.com/X56981214Q

Bom vamos ao codigo Unity C# 

Instantiate(Objeto , transform.position, transform.rotation);

O codigo acima faz exatamente o que se propõe, isntanciar, gerar, criar, brotar , fazer surgir do alem um objeto pré definido, entenda exatamente como ele funciona abaixo e um exemplo na pratica ! 
se ficar duvidas use o campo de comentarios ! 

A estrutura para usar esse codigo pode ser aplicada em um Update, embora possa ser uilizada em qualquer outra situação como emum OnTriggerEnter.

No exemplo pratico abaixo veja como gerarum objeto apartir de outro objeto em cena com o clique esquerdo do Mouse.



public Transform prefab;


void Update()
    {
        if (Input.GetMouseButtonDown(0)){
Instantiate(prefab, transform.position, transform.rotation);
}
    }

Vou explicar linha por linha acima para que você entenda exatamente o que está acontecendo acima.
Para fazer esse codigo funcionar é necessario colcoar ele em um game objeto vazio, e ter um Prefab criado 

public Transform prefab;

public : aqui estamos falando que a variavel é publica, então ela ficara visivel no painel da unity para você simplesmente arrastar e soltar o seu Prefab aqui dentro ! 

Transform :  aqui estamos determinando o tipo de objeto que vai estar vinculado a variavel para surgir na cena ao clicarmos com o botão do Mouse

prefab : aqui é só um nome, você pode colocar qualquer coisa aqui, tipo : jaboticaba.

Abaixo é a função Update, ela executa a cada atualização continuamente, então tudo que estiver dentro das chaves vai ficar executando continuamente.

void Update()
    {
     
    }

abaixo vamos ver o sistema de clique, como saber se o usuario clicou una Unity usando C#  ? 

  if (Input.GetMouseButtonDown(0)){


---------------------------------------------------------

if(){ // aqui é condição basica "se " se algo acontecer executamos dentro das chaves { } 

}



Input.GetMouseButtonDown(0) // essa linha basicamente verifica que o usuario, apertou o botão esquerdo do mouse ! 

Input : Apertou a budega do botão, mas qual botão ?
GetMouseButtonDown :  um botão do mause foi apertado, mas qual botão do mause doido ? 
(0) : o botão zero, mas que zero ? bom ai é uma codificação da unity cada botão tem um codigo, no caso do botão esquerdo do mouse é Zero em numeral ! 



Então a condição abaixo verifica basicamente se o cara apertou a birosca do botão esquerdo do mause e dentro das chaves { }  nos vamos determinar uma função ! 

  if (Input.GetMouseButtonDown(0)){
     agora algo vai acontecer aqui dentro, qualquer coisa 
  } 


Vamos colocar o nosso Gerador de objeto 

Instantiate(prefab, transform.position, transform.rotation);

Mas antes vamos entender ele ! 

Instantiate : aqui nos falamos, Ei unity 3D vamos gerar um objeto ok ? 

Ai a unity responde ok mas preciso de mais informações, tipo qual objeto e onde ele vai aparecer, blz  ? 
Instantiate ( qual objeto vai gerar , Onde vai gera , qual rotação que ele vai ter ao ser gerado

No lugar do qual objeto, vamos colocar um prefab, prefabs são objestos prefabricados na unity por você mesmo, espero por Deus que saiba fazer um prefab, se não vou ter que fazer um textão sobre prefabs logo, logo ! 

Em onde vai gerar é a posição, vamos definir a posição do objeto base usando transform.position com isso o sistema entende que o objeto recem gerado deve ter a mesma posição do objeto "Pai" o qual está esse script / codigo gerador de objetos na Unity !  

Da mesma forma em Rotação vamos usar transform.rotation e assim o sistema entende que você quer ele com as mesmas rotações do objeto " Pai"


e kabum , temos o codigo funcionando  ManO !

public Transform prefab;


void Update()
    {
        if (Input.GetMouseButtonDown(0)){
Instantiate(prefab, transform.position, transform.rotation);
}
    }


Um extra para você, a palavra Down no   if (Input.GetMouseButtonDown(0))  
O Down quer dizer que o botão foi apertado, você pode mudar para Up e ver o efeito contrario, funciona só quando se solta o botão.

Bom esse artigo foi só para quebrarmos o codigo e explicar como funciona um Gerador de Objetos na unity, como instanciar usando o CLick do Mouse, sei que vão surgir uma porrada de duvidas então comentem ai.

Aproveita para testar meu hobby game aqui, estou fazendo ele em camera lenta então vai na boa nos comentarios : http://rplaygames.com/game.php?Game=98



Aprenda a programar  em PHP agora mesmo com esse curso, participe ! 

Comentários