Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
3 participantes
Página 1 de 1
Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
Eu tenho 4 GameObjects que precisam receber cada um uma das 4 Tags referentes a eles, de forma que cada Tag fique em apenas 1 dos objetos, sem se repetir nos outros. É que quero fazer com que cada vez que o Jogo for aberto, os "inimigos" de cada cor se comportem de maneira diferente, tipo, o Azul vai para cima quando tiver a Tag "Cima", porem vai pra Esquerda se tiver a tag "Esquerda"... e assim com os inimigos "verde", "amarelo" e "vermelho" tambem.
Gazoles- Iniciante
- PONTOS : 2750
REPUTAÇÃO : 0
Idade : 30
Respeito as regras :
Re: Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
Gazoles escreveu:Eu tenho 4 GameObjects que precisam receber cada um uma das 4 Tags referentes a eles, de forma que cada Tag fique em apenas 1 dos objetos, sem se repetir nos outros. É que quero fazer com que cada vez que o Jogo for aberto, os "inimigos" de cada cor se comportem de maneira diferente, tipo, o Azul vai para cima quando tiver a Tag "Cima", porem vai pra Esquerda se tiver a tag "Esquerda"... e assim com os inimigos "verde", "amarelo" e "vermelho" tambem.
- Código:
List<string> lista = new List<string>();
for (int i = 0; i < 4; i++)
{
lista.Add("tag"+i);
}
gameObject.tag = lista[Random.Range(0, lista.Count-1)];
ou se preferir use um comando switch com random tambem serve
googolepton- Avançado
- PONTOS : 2791
REPUTAÇÃO : 38
Respeito as regras :
Re: Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
googolepton escreveu:Gazoles escreveu:Eu tenho 4 GameObjects que precisam receber cada um uma das 4 Tags referentes a eles, de forma que cada Tag fique em apenas 1 dos objetos, sem se repetir nos outros. É que quero fazer com que cada vez que o Jogo for aberto, os "inimigos" de cada cor se comportem de maneira diferente, tipo, o Azul vai para cima quando tiver a Tag "Cima", porem vai pra Esquerda se tiver a tag "Esquerda"... e assim com os inimigos "verde", "amarelo" e "vermelho" tambem.
- Código:
List<string> lista = new List<string>();
for (int i = 0; i < 4; i++)
{
lista.Add("tag"+i);
}
gameObject.tag = lista[Random.Range(0, lista.Count-1)];
ou se preferir use um comando switch com random tambem serve
Eu sou bem leigo em programação ainda... não consegui introduzir esse metodo no meu script... :/
Gazoles- Iniciante
- PONTOS : 2750
REPUTAÇÃO : 0
Idade : 30
Respeito as regras :
Re: Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
Tags nao sao usadas para esse tipo de coisa. Nao precisa de tags pra fazer isso. Apenas com a logica de programacao voce consegue definir as direcoes para que cada inimigo mova.
Exemplo:
Class Enemy
- Segura informacoes de direcao, cor, id, nome.
Class EnemyManager
- Segura os possiveis inimigos na cena, randomiza suas cores e posicoes e os spawna randomicamente.
Tenta pensar um pouco ai, faca algum codigo e poste novamente, ai te ajudamos com todo prazer!
Boa sorte, nao desista.
Obs: Caso nao consiga, passa mais detalhes que faco pra voce... (Mas apenas se nao conseguir realmente)
Exemplo:
Class Enemy
- Segura informacoes de direcao, cor, id, nome.
Class EnemyManager
- Segura os possiveis inimigos na cena, randomiza suas cores e posicoes e os spawna randomicamente.
Tenta pensar um pouco ai, faca algum codigo e poste novamente, ai te ajudamos com todo prazer!
Boa sorte, nao desista.
Obs: Caso nao consiga, passa mais detalhes que faco pra voce... (Mas apenas se nao conseguir realmente)
Re: Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
dimmuo escreveu:Tags nao sao usadas para esse tipo de coisa. Nao precisa de tags pra fazer isso. Apenas com a logica de programacao voce consegue definir as direcoes para que cada inimigo mova.
Exemplo:
Class Enemy
- Segura informacoes de direcao, cor, id, nome.
Class EnemyManager
- Segura os possiveis inimigos na cena, randomiza suas cores e posicoes e os spawna randomicamente.
Tenta pensar um pouco ai, faca algum codigo e poste novamente, ai te ajudamos com todo prazer!
Boa sorte, nao desista.
Obs: Caso nao consiga, passa mais detalhes que faco pra voce... (Mas apenas se nao conseguir realmente)
Vou tentar aqui dessa forma, mas vou te dar os detalhes aqui pra você ver se vai dar certo mesmo.
É que quero que cada vez que o jogo for carregado o comando pra destruir o inimigo de cada cor seja diferente.
Exemplo, se o Inimigo azul é destruido com o comando pra cima, mas na proxima vez que abrir o jogo o comando pode ser outro, e eu precisaria fazer com que no "tutorial" mostrasse o comando atual.
Ai pensei em fazer usando as Tags...
Tipo
Se a Tag for do Inimigo for "Cima", entao iria iria ser o Case 1, onde ia estar definido o comando do controle pra direção Cima e o SetActive com uma seta indicando pra cima no tutorial.
Gazoles- Iniciante
- PONTOS : 2750
REPUTAÇÃO : 0
Idade : 30
Respeito as regras :
Re: Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
coloque seus objetos na list objetos e as tags na lista tags, nao se esqueca que as tags deverao estar criadas na unityGazoles escreveu:googolepton escreveu:Gazoles escreveu:Eu tenho 4 GameObjects que precisam receber cada um uma das 4 Tags referentes a eles, de forma que cada Tag fique em apenas 1 dos objetos, sem se repetir nos outros. É que quero fazer com que cada vez que o Jogo for aberto, os "inimigos" de cada cor se comportem de maneira diferente, tipo, o Azul vai para cima quando tiver a Tag "Cima", porem vai pra Esquerda se tiver a tag "Esquerda"... e assim com os inimigos "verde", "amarelo" e "vermelho" tambem.
- Código:
List<string> lista = new List<string>();
for (int i = 0; i < 4; i++)
{
lista.Add("tag"+i);
}
gameObject.tag = lista[Random.Range(0, lista.Count-1)];
ou se preferir use um comando switch com random tambem serve
Eu sou bem leigo em programação ainda... não consegui introduzir esse metodo no meu script... :/
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lista : MonoBehaviour {
public List<GameObject> objetos;
List<string> tags;
// Use this for initialization
void Start () {
tags = new List<string>();
tags.Add("direita");
tags.Add("esquerda");
tags.Add("cima");
tags.Add("baixo");
int indice;
for (int i = 0; i < objetos.Count; i++)
{
indice = Random.Range(0,tags.Count-1);
objetos[i].tag = tags[indice];
tags.RemoveAt(indice);
}
}
}
googolepton- Avançado
- PONTOS : 2791
REPUTAÇÃO : 38
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como spawnar aleatoriamente objetos de uma array
» Como fazer a quantidade e alguma coisa aleatoriamente?
» Se eu fazer uma animação diferente pra cada personagem,vai pesar ?
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» Como fazer a quantidade e alguma coisa aleatoriamente?
» Se eu fazer uma animação diferente pra cada personagem,vai pesar ?
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
» Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos