[TUTORIAL] Como utilizar a função " Instantiate "
5 participantes
Página 1 de 1
[TUTORIAL] Como utilizar a função " Instantiate "
Esta função " Instantiate " serve básicamente para instanciar algo em alguma posição que você desejar...
O instantiate pede 3 parâmetros para funcionar:
1 - Objeto ( GameObject )
2 - Posição ( Vector2 ou Vector3 )
3 - Rotação ( Vector2 ou Vector 3 também )
+/- assim:
esta variavel vai aparecer na aba inspector e você poderá linkar um prefab que é o objeto que você quer instanciar.
agora já temos um Objeto para instanciar, falta uma posição... Então eu quero que este objeto seja instanciado na posição de algum objeto invisivel no meu cenário, então primeiramente eu declaro este objeto invisivel:
agora na minha função instantiate eu tenho que dizer que esta será a posição onde o " Objeto " será instanciado.
se o meu objeto " pivo " for do tipo " GameObject " eu tenho que passar o parametro " transform "
caso o meu objeto " pivo " seja um tipo " Transform " eu não preciso passar o parametro " transform "
exemplo:
se for um tipo GameObject:
se for um tipo Transform:
agora a ultima coisa que falta é uma rotação para instanciar... para isso eu posso pegar uma rotação de algum objeto externo, posso definir a rotação através de um Quaternion ou posso dizer que o objeto vai ser instanciado na rotação normal dele que é " transform.rotation "
ate agora temos isto:
onde:
"Instantiate" é a função de instanciar
"Objeto" é o objeto que será instanciado
"pivo.transform.position" é a posição onde ele será instanciado
"transform.rotation" é a rotação que o objeto será instanciado
agora basta colocar isto dentro de alguma função ou comando... para dar um exemplo, vou fazer o objeto ser instanciado logo no inicio do jogo, para isto vou utilizar a void Start :
Basicamente assim que funciona o Instantiate :D
Sei que o tutorial é bastante simples, então se alguém tiver algum complemento ou observação, fique a vontade
O instantiate pede 3 parâmetros para funcionar:
1 - Objeto ( GameObject )
2 - Posição ( Vector2 ou Vector3 )
3 - Rotação ( Vector2 ou Vector 3 também )
+/- assim:
- Código:
Instantiate(Objeto,Posição,Rotação);
- Código:
public GameObject Objeto;
esta variavel vai aparecer na aba inspector e você poderá linkar um prefab que é o objeto que você quer instanciar.
agora já temos um Objeto para instanciar, falta uma posição... Então eu quero que este objeto seja instanciado na posição de algum objeto invisivel no meu cenário, então primeiramente eu declaro este objeto invisivel:
- Código:
public GameObject pivo;
agora na minha função instantiate eu tenho que dizer que esta será a posição onde o " Objeto " será instanciado.
se o meu objeto " pivo " for do tipo " GameObject " eu tenho que passar o parametro " transform "
caso o meu objeto " pivo " seja um tipo " Transform " eu não preciso passar o parametro " transform "
exemplo:
se for um tipo GameObject:
- Código:
public GameObject Objeto;
public GameObject pivo;
Instantiate(Objeto,pivo.transform.position...
se for um tipo Transform:
- Código:
public GameObject Objeto;
public Transform pivo;
Instantiate(Objeto,pivo.position...
agora a ultima coisa que falta é uma rotação para instanciar... para isso eu posso pegar uma rotação de algum objeto externo, posso definir a rotação através de um Quaternion ou posso dizer que o objeto vai ser instanciado na rotação normal dele que é " transform.rotation "
ate agora temos isto:
- Código:
Instantiate(Objeto,pivo.transform.position,transform.rotation);
onde:
"Instantiate" é a função de instanciar
"Objeto" é o objeto que será instanciado
"pivo.transform.position" é a posição onde ele será instanciado
"transform.rotation" é a rotação que o objeto será instanciado
agora basta colocar isto dentro de alguma função ou comando... para dar um exemplo, vou fazer o objeto ser instanciado logo no inicio do jogo, para isto vou utilizar a void Start :
- Código:
public GameObject Objeto;
public GameObject pivo;
void Start (){
Instantiate(Objeto,pivo.transform.position,transform.rotation);
}
Basicamente assim que funciona o Instantiate :D
Sei que o tutorial é bastante simples, então se alguém tiver algum complemento ou observação, fique a vontade
Última edição por MarcosSchultz em Ter Jun 07, 2016 8:45 pm, editado 1 vez(es)
Re: [TUTORIAL] Como utilizar a função " Instantiate "
Cara eu ainda estou um pouco com duvidas... eu queria estanciar balas de uma nave
anjoBlack- Iniciante
- PONTOS : 3363
REPUTAÇÃO : 0
Idade : 26
Re: [TUTORIAL] Como utilizar a função " Instantiate "
Exatamente esse o Sistema, Só Conf Como vc Quer Atirar e etc...anjoBlack escreveu: Cara eu ainda estou um pouco com duvidas... eu queria estanciar balas de uma nave
EX:
- Código:
public GameObject bala; // OBJETO SERÁ A BALA[size=14][/size]public GameObject PontoQueaBalaSai; // PIVO SERÁ DE ONDE AS BALAS SAEM da Arma,ou qualquer outro Lugar[size=14][/size][size=14][/size]void Update(){
Input.GetMouseButtonDown(0){ Instantiate(bala,PontoQueaBalaSai.transform.position,PontoQueaBalaSai.transform.rotation); // Quando Clicar com o Mouse a Bala Sai! }}
Só Criar um Prefab da Bala Funcionado na direção certa e pronto!
Re: [TUTORIAL] Como utilizar a função " Instantiate "
Exatamente esse o Sistema, Só Conf Como vc Quer Atirar e etc...anjoBlack escreveu: Cara eu ainda estou um pouco com duvidas... eu queria estanciar balas de uma nave
EX:
- Código:
public GameObject bala; // OBJETO SERÁ A BALA
public GameObject PontoQueaBalaSai; // PIVO SERÁ DE ONDE AS BALAS SAEM da Arma,ou qualquer outro Lugar
void Update(){
Input.GetMouseButtonDown(0){
Instantiate(bala,PontoQueaBalaSai.transform.position,PontoQueaBalaSai.transform.rotation); // Quando Clicar com o Mouse a Bala Sai!
}
}
Só Criar um Prefab da Bala Funcionado na direção certa e pronto!
Re: [TUTORIAL] Como utilizar a função " Instantiate "
e se fosse para destruir ?
- Código:
public GameObject plasma;
public GameObject vilao;
public GameObject deleta;
public GameObject plasmahp;
public Transform gameenginea;
public int minimo = 20, maximo = 30;
bool comecou;
bool acabou;
bool reiniciar;
public int quantia;
// Use this for initialization
void Start () {
InvokeRepeating ("criaplasma", 1.0f, 1.5f);
InvokeRepeating ("crialife", 2.0f, 1.0f);
}
public void CriaInimigo(){
if (!acabou) {
acabou = true;
int quantia = Random.Range (minimo, maximo);
for (int x = 0; x < quantia; x++) {
transform.position = new Vector2 (Random.Range (90f, 235f), Random.Range (158f, 66f));
Instantiate (vilao, transform.position, Quaternion.identity);
}
}
}
public void criaplasma () {
transform.position = new Vector2 (Random.Range (320f, 75f), Random.Range (158f, 66f));
Instantiate (plasma, transform.position, Quaternion.identity);
if (acabou) {
acabou = true;
deleta.SendMessage ("Acabou");
destruir ();
}
}
public void crialife(){
transform.position = new Vector2 (Random.Range (320f, 75f), Random.Range (158f, 66f));
Instantiate (plasmahp, transform.position, Quaternion.identity);
if (acabou) {
acabou = true;
deleta.SendMessage ("Acabou");
destruir ();
}
}
public void destruir(){
if (acabou) {
acabou = true;
deleta.SendMessage ("Acabou");
Instantiate (plasma, gameenginea.transform.position, Quaternion.identity);
Destroy (plasma);
}
if (acabou) {
acabou = true;
deleta.SendMessage ("Acabou");
Instantiate (plasmahp, gameenginea.transform.position, Quaternion.identity);
Destroy (plasmahp);
}
}
}
joaoguil3- Iniciante
- PONTOS : 1817
REPUTAÇÃO : 3
Respeito as regras :
Re: [TUTORIAL] Como utilizar a função " Instantiate "
Como instanciar o objeto na mesma posição de outro objeto que está na cena?
mama2401- Avançado
- PONTOS : 2392
REPUTAÇÃO : 2
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Unity 5 - Como utilizar o Animator
» [TUTORIAL] Como utilizar Reflection Probe na Unity 5
» [TUTORIAL] Unity 5 - Como utilizar o Enum (switch, case)
» [TUTORIAL] Como utilizar o SketchUp e exportar para Unity 5
» [TUTORIAL] Como utilizar "Application.LoadLevel" na Unity 5 (SceneManager.LoadScene)
» [TUTORIAL] Como utilizar Reflection Probe na Unity 5
» [TUTORIAL] Unity 5 - Como utilizar o Enum (switch, case)
» [TUTORIAL] Como utilizar o SketchUp e exportar para Unity 5
» [TUTORIAL] Como utilizar "Application.LoadLevel" na Unity 5 (SceneManager.LoadScene)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos