Ajuda com sistema de colisão
2 participantes
Página 1 de 1
Ajuda com sistema de colisão
Tem como detectar um objeto com uma tag(Tag player), quando ele entra em contato com outro objeto e realizar alguma ação (Tipo uma animação etc). Se tiver, me indiquem tutoriais ou documentação da unity
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Re: Ajuda com sistema de colisão
Sim. Adicione um box collider ao objeto e ative o IsTrigger, crie um script com a seguinte void:
Documentação unity: https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
- Código:
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
//Realiza uma ação
}
}
Documentação unity: https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
Pokedlg- ProgramadorMaster
- PONTOS : 2336
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: Ajuda com sistema de colisão
Pokedlg escreveu:Sim. Adicione um box collider ao objeto e ative o IsTrigger, crie um script com a seguinte void:
- Código:
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
//Realiza uma ação
}
}
Documentação unity: https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
Valeu, funcionou
Tem como juntar isso com um GetKeyDown?
tentei fazer isso:
- Código:
void OnTriggerEnter(Collider other)
{
if((Input.GetKeyDown(KeyCode.F)&&(other.tag == "Player")))
{
m_Animator.SetTrigger("Abrir");
}
}
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Re: Ajuda com sistema de colisão
No caso, acredito que voce deveria utilizar o OnTriggerStay:
Se nao funcionar, voce pode criar uma bool, ativando-a quando colide:
- Código:
void OnTriggerStay(Collider other)
{
if(Input.GetKeyDown(KeyCode.F)&&other.tag == "Player")
{
m_Animator.SetTrigger("Abrir");
}
}
Se nao funcionar, voce pode criar uma bool, ativando-a quando colide:
- Código:
bool colidiu = false;
void Update()
{
if(colidiu == true && Input.GetKeyDown(KeyCode.F))
{
m_Animator.SetTrigger("Abrir");
}
}
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
colidiu = true;
}
}
Pokedlg- ProgramadorMaster
- PONTOS : 2336
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: Ajuda com sistema de colisão
Pokedlg escreveu:No caso, acredito que voce deveria utilizar o OnTriggerStay:
- Código:
void OnTriggerStay(Collider other)
{
if(Input.GetKeyDown(KeyCode.F)&&other.tag == "Player")
{
m_Animator.SetTrigger("Abrir");
}
}
Se nao funcionar, voce pode criar uma bool, ativando-a quando colide:
- Código:
bool colidiu = false;
void Update()
{
if(colidiu == true && Input.GetKeyDown(KeyCode.F))
{
m_Animator.SetTrigger("Abrir");
}
}
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
colidiu = true;
}
}
Valeuu, era exatamente oq estava procurando
(Usei o OnTriggerStay) para abrir uma porta.
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Pokedlg- ProgramadorMaster
- PONTOS : 2336
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: Ajuda com sistema de colisão
Pokedlg escreveu:No caso, acredito que voce deveria utilizar o OnTriggerStay:
- Código:
void OnTriggerStay(Collider other)
{
if(Input.GetKeyDown(KeyCode.F)&&other.tag == "Player")
{
m_Animator.SetTrigger("Abrir");
}
}
Se nao funcionar, voce pode criar uma bool, ativando-a quando colide:
- Código:
bool colidiu = false;
void Update()
{
if(colidiu == true && Input.GetKeyDown(KeyCode.F))
{
m_Animator.SetTrigger("Abrir");
}
}
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
colidiu = true;
}
}
Tem como verificar quando ele sai do colisor?
procurei na documentação e n achei, tentei usar else, mas tbm n funfa
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Re: Ajuda com sistema de colisão
usa o OnTriggerExit
- Código:
void OnTriggerExit(Collider other)
{
if(other.tag == "Player")
{
//faz algo...
}
}
Pokedlg- ProgramadorMaster
- PONTOS : 2336
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: Ajuda com sistema de colisão
Veleu manoPokedlg escreveu:usa o OnTriggerExit
- Código:
void OnTriggerExit(Collider other)
{
if(other.tag == "Player")
{
//faz algo...
}
}
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Pokedlg- ProgramadorMaster
- PONTOS : 2336
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Tópicos semelhantes
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» Ajuda com Colisão na Camera
» Ajuda com colisao
» Ajuda com colisao?
» Ajuda problema na colisao 2d
» Ajuda com Colisão na Camera
» Ajuda com colisao
» Ajuda com colisao?
» Ajuda problema na colisao 2d
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos