Destruir objeto com colisão
+7
marcoflautista
dstaroski
cranfinaster
MarcosSchultz
Stipp
RenanMSV
GustavoMaster
11 participantes
Página 1 de 1
Destruir objeto com colisão
Como destruir um objeto com uma colisão que seja de uma determinada tag ? vlw
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
OnCollisionEnter (Collider colisao){
If (colisao.gameObject.tag == "TAG_AQUI"){
gameObject.Destroy();
}
}
Ou
OnTriggerEnter (Collider colisao){ //caso voce queira que o objeto possa ser atravessado. Voce deve marcar triger no collider do objeto.
If (colisao.gameObject.tag == "TAG_AQUI"){
gameObject.Destroy();
}
}
... Fiz de cabeça, pode ter errinhos
RenanMSV- Instrutor
- PONTOS : 4483
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Destruir objeto com colisão
Não deu ! e o que eu quero fazer nao da pra usar o trigger :/
ta assim
ja adicionei o RigidBody no alvo mas msm assim não aconteceu nada tentem com o Collision e o Collider mas não destruiu .
ta assim
- Código:
void OnCollisionEnter (Collision Col){
if (Col.gameObject.tag == "Bala") {
Destroy (gameObject);
}
ja adicionei o RigidBody no alvo mas msm assim não aconteceu nada tentem com o Collision e o Collider mas não destruiu .
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
Tenta isso:
Coloque um box collider ou outro colisor na bala e testa, esse script vai no alvo.
Coloque um box collider ou outro colisor na bala e testa, esse script vai no alvo.
- Código:
void OnCollisionEnter (Collision col) {
if(col.gameObject.tag == "Bala"){
Destroy(col.gameObject);
}
}
Stipp- Avançado
- PONTOS : 3639
REPUTAÇÃO : 102
Idade : 25
Áreas de atuação : Programação: C#, VB.NET, PHP e outras.
Modelagem: Blender.
Respeito as regras :
Re: Destruir objeto com colisão
Vlw deu certo não sei pq nao tava funcionando pq a velocidade da minha bala tava a mil !
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
Tem algum jeito de fazer isso sem o ridigbody ?
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
Colisões funcionam apenas com Rigidbody...
Um metodo alternativo seria usar um Vector3.Distance... e checar se o objeto está próximo do alvo, más é bem precário
Um metodo alternativo seria usar um Vector3.Distance... e checar se o objeto está próximo do alvo, más é bem precário
Re: Destruir objeto com colisão
mas tem como não deixar o obj com rigidbody não se mover ?
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
com o Kinematic não funciona
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
não entendi, você quer que o objeto com o rigidbody não se mova? ué, então desmarca o use gravity e marca todas as caixinhas no "constraints" para travar a rotação em todos os eixos e a movimentação também
Re: Destruir objeto com colisão
E marca a caxinha de "static". O unity utiliza ela pra se vc deixar selecionado seu jogo nao vai processar fisica nenhuma naquele objeto. Resultando em mais FPS no projeto final. Quanto mais objetos estaticos vc marcar, melhor.
RenanMSV- Instrutor
- PONTOS : 4483
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Destruir objeto com colisão
Marquei e msm assim não foi quando marquei o kinematik ele não conta a colisão mas quando desmarquei ele se moveu mas contou a colisao
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
Então está fazendo algo errado...
O IsKinematic não impede de detectar colisão... inclusive, o characterController da Unity 5 usa um Rigidbody com IsKinematic para detectar colisões
O IsKinematic não impede de detectar colisão... inclusive, o characterController da Unity 5 usa um Rigidbody com IsKinematic para detectar colisões
Re: Destruir objeto com colisão
Já dei um jeito !
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
Re: Destruir objeto com colisão
MASRCA "STRIGER"GustavoMaster escreveu:Não deu ! e o que eu quero fazer nao da pra usar o trigger :/
ta assim
- Código:
void OnCollisionEnter (Collision Col){
if (Col.gameObject.tag == "Bala") {
Destroy (gameObject);
}
ja adicionei o RigidBody no alvo mas msm assim não aconteceu nada tentem com o Collision e o Collider mas não destruiu .
cranfinaster- Iniciante
- PONTOS : 2742
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
Bom dia! resolveu? conte-nos exatamente o que fez, se foi o que os manos acima disseram, é importante para ajudar a outros.GustavoMaster escreveu:Já dei um jeito !
Abraço!
Re: Destruir objeto com colisão
Ok, o objeto foi destruído... Qual que é o comando para fazer esse objeto voltar oque era inicialmente?
marcoflautista- Iniciante
- PONTOS : 2542
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
Se você quer que ele volte ao estado inicial, você vai ter que usar o Object.Instantiate, mas se quer que ele reaparece, é mais facil você habilitar e desabilitar o objeto
Re: Destruir objeto com colisão
Se quer fazer ele voltar, não precisa ser por Destroy ou Instantiate, um SetActive resolve;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Destruir objeto com colisão
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
somAcerto.Play();
GameObject.Destroy(bolaPerguntaA);
}
if (alternativaA[idPergunta] != corretas[idPergunta])
{
somErro.Play();
GameObject.Destroy(bolaPerguntaA);
GameObject.Destroy(bolaCERTO_A);
}
}
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
somAcerto.Play();
GameObject.Destroy(bolaPerguntaA);
}
if (alternativaA[idPergunta] != corretas[idPergunta])
{
somErro.Play();
GameObject.Destroy(bolaPerguntaA);
GameObject.Destroy(bolaCERTO_A);
}
}
marcoflautista- Iniciante
- PONTOS : 2542
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
Se você quer que o objeto apareça do mesmo jeito e no mesmo lugar, faça como o @Phph09 falou, não destrua o objeto, apenas desative ele e depois reative com SetActive
Re: Destruir objeto com colisão
Como ficaria o script pra usar o setActive???
marcoflautista- Iniciante
- PONTOS : 2542
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
Assim :marcoflautista escreveu:Como ficaria o script pra usar o setActive???
- Código:
objeto.SetActive(true); //SetActive é usado como método por isso está em parênteses o valor bool
Daniel Pires da Silva- Avançado
- PONTOS : 2753
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: Destruir objeto com colisão
O comando é aceito pelo unity, mas quando dou play nada acontece???
marcoflautista- Iniciante
- PONTOS : 2542
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
Mande-me o script. por favor.marcoflautista escreveu:O comando é aceito pelo unity, mas quando dou play nada acontece???
Daniel Pires da Silva- Avançado
- PONTOS : 2753
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: Destruir objeto com colisão
Para destroir um objeto voce deve fazer assim
- Código:
public GameObject Obj;//O objeto que sera destroido
void OnTriggerEnter(Collider other){
if (other.CompareTag ("Player")) {
Destroy(Obj);//Destroindo o objeto
Ou Destroy(gameObject);//Para destroir o objeto que esta com o script
}
}
Re: Destruir objeto com colisão
[list=linenums]
[*]objeto.SetActive(true); //SetActive é usado como método por isso está em parênteses o valor bool
[/list]
Eu substitui o true por false, ai deu certo, ela foi desativada, a guerra agora é ativar novamente, vou tentar substituir o false novamente.
[*]objeto.SetActive(true); //SetActive é usado como método por isso está em parênteses o valor bool
[/list]
Eu substitui o true por false, ai deu certo, ela foi desativada, a guerra agora é ativar novamente, vou tentar substituir o false novamente.
marcoflautista- Iniciante
- PONTOS : 2542
REPUTAÇÃO : 0
Respeito as regras :
Re: Destruir objeto com colisão
SetActive(true) -> Objeto ativado
SetActive(false) -> Objeto desativado
Eu passei o link da documentação pra você dar uma olhada
Documentação
SetActive(false) -> Objeto desativado
Eu passei o link da documentação pra você dar uma olhada
Documentação
Tópicos semelhantes
» É possivel detectar colisão de um objeto filho pelo objeto pai?
» Destruir em colisão. - Código não está funcionando
» É Possível destruir inimigos pela colisão?
» Destruir um objeto!!!!
» Destruir objeto
» Destruir em colisão. - Código não está funcionando
» É Possível destruir inimigos pela colisão?
» Destruir um objeto!!!!
» Destruir objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos