Verificar Colisão
3 participantes
Página 1 de 1
Verificar Colisão
Alguém me ajuda! kkk'
estou fazendo um game 2D na unity onde preciso fazer a verificação de vários colliders, vou tentar explicar melhor.
o usuario vai movimentar varios objetos da posição X para posição Y, oque eu quero é fazer essa verificação da posição Y de todos os objetos de uma so vez, tipo quando eu apertar um botão ele verificar as posições de todos os objetos.
estou fazendo um game 2D na unity onde preciso fazer a verificação de vários colliders, vou tentar explicar melhor.
o usuario vai movimentar varios objetos da posição X para posição Y, oque eu quero é fazer essa verificação da posição Y de todos os objetos de uma so vez, tipo quando eu apertar um botão ele verificar as posições de todos os objetos.
junkflash30- Membro
- PONTOS : 2692
REPUTAÇÃO : 2
Idade : 27
Áreas de atuação : Programador em C#
Respeito as regras :
Re: Verificar Colisão
- Código:
// se for a posicão:
public Vector3 Max;
public GameObject[] Objetos;
public float NumeroDeObjetos;
void Update(){
for(int i = 0,i < NumeroDeObjetos - 1,i ++){
if(Objetos[i].transform.position < Max){
//Acontece...
}
}
//ou se for o caso de checar a colisao você pode
void OnColisionEnter2D(){//Acho que é assim que escreve
//Acontece...
}
//ou nesse caso abaixo seu colider deve estar como IsTrigger
void OnTriggeEnter2D(){
//Acontece...
}
No caso você quer verificar a colisão ou a posição dos objetos?
se for a colisão você pode fazer usando as voids OnColisionEnter() oi OnTriggerEnter()
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Verificar Colisão
vou tentar explicar melhor.
na imagem abaixo segue um exemplo do que estou fazendo, essas palavras em vermelho o usuario vai arrastar com o mouse para suas devidas posições oque eu pretendo fazer é verificar se ela esta na posição correta, quando clicar em um botão de correção ele faz a verificação de todos os textos, se correto fica onde esta, se errado volta para posição original.
na imagem abaixo segue um exemplo do que estou fazendo, essas palavras em vermelho o usuario vai arrastar com o mouse para suas devidas posições oque eu pretendo fazer é verificar se ela esta na posição correta, quando clicar em um botão de correção ele faz a verificação de todos os textos, se correto fica onde esta, se errado volta para posição original.
junkflash30- Membro
- PONTOS : 2692
REPUTAÇÃO : 2
Idade : 27
Áreas de atuação : Programador em C#
Respeito as regras :
Re: Verificar Colisão
ok agora eu entendi
primeiramente vá no seu botão na void OnClick e adiciona o objeto com esse script abaixo e seleciona a void Check;
fiz meio que de cabeça deve ter algum Bug;
primeiramente vá no seu botão na void OnClick e adiciona o objeto com esse script abaixo e seleciona a void Check;
- Código:
public Transform[] locais;
public Transform[] Nomes;
private boll[] Ativo;
public int QuantidadeDeNomes;
public Transform[] localInicial;
void Update(){
for (int i = 0,i < (QuantidadeDeNomes - 1),i ++){
if(Vector3.Distance(locais[i].position,Nomes[i].position) < 3){
Ativo[i] = true;
}else{
Ativo[i] = false;
}
}
public void Check(){
for(int x = 0,x < (QuantidadeDeNomes - 1),x ++){
if(Ativo[x] == true){
//Acontece Algo...
}else{
for(int z = 0,z < (QuantidadeDeNomes - 1),z ++){
Nomes[z].position = localInicial[z].position;
}
}
}
fiz meio que de cabeça deve ter algum Bug;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Verificar Colisão
Mexer com posições nesse caso não seria a abordagem mais correta, até porque é possível ter duas respostas corretas por pergunta(foi o que entendi vendo o exemplo), se o jogador alterar a posição das duas respostas corretas daria erro, mesmo estando certo.
Ao que parece, tu deve estar usando o EventSystem para fazer o sistema de pegar e soltar os itens, eu faria assim:
1 - Em cada texto, colocaria uma Tag correspondente a resposta, ex: (resp1, resp2, etc).
1.1 - Mais de uma resposta poderia ter a mesma tag.
2 - na OnEndDrag() defina os nomes das antigas áreas para se tornarem filhas caso seja soltas sobre a linha da resposta.
3 - Escreveria uma funçao que percorreria os itens da esquerda( do teu exemplo) procurando os objetos filhos(que o jogador soltou) e verificando se eles tinham a Tag correspondente com o item,
ex: (Eu, outro e nós = resp1 | se os filhos tiverem a mesma tag, continua escaneando, se não, já mostra uma mensagem de erro.)
4 - Caso ele chegasse ao fim do escaneamento das respostas, chamaria a proxima tela ou qualquer coisa que queira fazer caso o jogador acerte.
Ao que parece, tu deve estar usando o EventSystem para fazer o sistema de pegar e soltar os itens, eu faria assim:
1 - Em cada texto, colocaria uma Tag correspondente a resposta, ex: (resp1, resp2, etc).
1.1 - Mais de uma resposta poderia ter a mesma tag.
2 - na OnEndDrag() defina os nomes das antigas áreas para se tornarem filhas caso seja soltas sobre a linha da resposta.
3 - Escreveria uma funçao que percorreria os itens da esquerda( do teu exemplo) procurando os objetos filhos(que o jogador soltou) e verificando se eles tinham a Tag correspondente com o item,
ex: (Eu, outro e nós = resp1 | se os filhos tiverem a mesma tag, continua escaneando, se não, já mostra uma mensagem de erro.)
4 - Caso ele chegasse ao fim do escaneamento das respostas, chamaria a proxima tela ou qualquer coisa que queira fazer caso o jogador acerte.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Tópicos semelhantes
» Verificar se não há uma Colisão
» Como verificar uma colisão constante ?
» Verificar de um arquivo é PNG e verificar resolução
» Verificar inventario
» Verificar distância
» Como verificar uma colisão constante ?
» Verificar de um arquivo é PNG e verificar resolução
» Verificar inventario
» Verificar distância
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos