Como criar vários objetos a partir de um? (Unity)
2 participantes
Página 1 de 1
Como criar vários objetos a partir de um? (Unity)
Recriei o jogo FlappyBird, mas estou querendo implementar um IA nela, e preciso instanciar o mesmo objeto várias vezes(o passáro) e preciso associar o Rigidbody2D a cada um deles para que cada um voe, o máximo que consegui foi criar um vetor de GameObject e mesmo assim tive que ir no script e colocar o objeto em cada posição, e minha idéia é fazer vários pássaros aparecer na tela ao mesmo tempo e que cada um tenha o seu Rigidbody2D para o seu próprio voo.
Então eu só preciso fazer duas coisas:
- a partir de um objeto(pássaro), copiá-lo e criar vários outros objetos(pássaros) na tela do jogo.
- colocar um Rigidbody2D a cada um deles, pois preciso fazê-los voar através da função:
Alguém saberia como eu posso fazer isso? Ou se tem outra forma melhor?
Então eu só preciso fazer duas coisas:
- a partir de um objeto(pássaro), copiá-lo e criar vários outros objetos(pássaros) na tela do jogo.
- colocar um Rigidbody2D a cada um deles, pois preciso fazê-los voar através da função:
- Código:
[size=14]private Rigidbody2D rig = GetComponent<Rigidbody2D>();
rig.velocity = Vector2.up * speed;[/size]
Alguém saberia como eu posso fazer isso? Ou se tem outra forma melhor?
PauloR2811- Iniciante
- PONTOS : 1324
REPUTAÇÃO : 3
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
Mas quantos passaros vc quer instanciar? Em que posições? Ou voce quer que fique instanciando passaros infinitamente?
Pokedlg- ProgramadorMaster
- PONTOS : 2315
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
Esqueci de informar esse detalhe , estava tentando com 10, e todos deveriam começar da posição x = 0 e y = 0,04Pokedlg escreveu:Mas quantos passaros vc quer instanciar? Em que posições? Ou voce quer que fique instanciando passaros infinitamente?
PauloR2811- Iniciante
- PONTOS : 1324
REPUTAÇÃO : 3
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
Voce pode criar um loop for que vai instanciando enquanto o i aumenta, olhe:
No script: Foi utilizado um loop for que vai aumentando a variavel do tipo inteira i, que para cada aumento é instanciado um passaro e atraves do AddComponent foi adicionado um rigidbody2d a eles
- Código:
public GameObject passaro; //coloque seu prefab ou gameObject do passaro aqui
for(int i = 0; i<10; i++)
{
GameObject newPassaro = Instantiate(passaro, new Vector3(0, 0.04f, 0), Quaternion.identity);
Rigidbody2D newRig = newPassaro.AddComponent<Rigidbody2D>() as Rigidbody2D;
//nao sei se voce quer que eles se movimentam quando sao instanciados, se nao, nao copie a próxima linha
newRig.velocity = Vector2.up * speed;
}
No script: Foi utilizado um loop for que vai aumentando a variavel do tipo inteira i, que para cada aumento é instanciado um passaro e atraves do AddComponent foi adicionado um rigidbody2d a eles
Pokedlg- ProgramadorMaster
- PONTOS : 2315
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
Pokedlg escreveu:Voce pode criar um loop for que vai instanciando enquanto o i aumenta, olhe:Valeu, funcionou! Agora preciso descobrir como ignorar o Circle Colider 2D dos pássaros quando eles colidem um com o outro, e também o Rigidbody 2D, preciso que os pássaros atravessem um ao outro.
- Código:
public GameObject passaro; //coloque seu prefab ou gameObject do passaro aqui
for(int i = 0; i<10; i++)
{
GameObject newPassaro = Instantiate(passaro, new Vector3(0, 0.04f, 0), Quaternion.identity);
Rigidbody2D newRig = newPassaro.AddComponent<Rigidbody2D>() as Rigidbody2D;
//nao sei se voce quer que eles se movimentam quando sao instanciados, se nao, nao copie a próxima linha
newRig.velocity = Vector2.up * speed;
}
No script: Foi utilizado um loop for que vai aumentando a variavel do tipo inteira i, que para cada aumento é instanciado um passaro e atraves do AddComponent foi adicionado um rigidbody2d a eles
PauloR2811- Iniciante
- PONTOS : 1324
REPUTAÇÃO : 3
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
Denada . Para ignorar as colisões voce pode criar uma layer e adiconar aos objetos passaros e colocar um:
Ou voce pode também, que ao entrar em contato um com o outro, voce pode desativar o componente Circle Colider 2D deles utilizando as void OnTriggerEnter e OnTriggerExit.
- Código:
Physics2D.IgnoreLayerCollision(numeroDaLayerDosPassaros, numeroDaLayerDosPassarosIgnorados);
Ou voce pode também, que ao entrar em contato um com o outro, voce pode desativar o componente Circle Colider 2D deles utilizando as void OnTriggerEnter e OnTriggerExit.
Pokedlg- ProgramadorMaster
- PONTOS : 2315
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como criar vários objetos a partir de um? (Unity)
BlzPokedlg escreveu:Denada . Para ignorar as colisões voce pode criar uma layer e adiconar aos objetos passaros e colocar um:
- Código:
Physics2D.IgnoreLayerCollision(numeroDaLayerDosPassaros, numeroDaLayerDosPassarosIgnorados);
Ou voce pode também, que ao entrar em contato um com o outro, voce pode desativar o componente Circle Colider 2D deles utilizando as void OnTriggerEnter e OnTriggerExit.
PauloR2811- Iniciante
- PONTOS : 1324
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» Como gerenciar o Sorting Layer de varios objetos em cena
» como abrir o app de email a partir de um jogo unity ?
» TEM COMO CRIAR UM PREFAB COM OS OBJETOS QUE VC USA?
» Como fazer pra selecionar um inimigo pra atacar de varios unity 2d
» Como criar Objetos (GameObjects) Apertando Uma tecla
» como abrir o app de email a partir de um jogo unity ?
» TEM COMO CRIAR UM PREFAB COM OS OBJETOS QUE VC USA?
» Como fazer pra selecionar um inimigo pra atacar de varios unity 2d
» Como criar Objetos (GameObjects) Apertando Uma tecla
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos