[DUVIDA] Problema com colisão de terreno e objeto 3D
3 participantes
Página 1 de 1
[DUVIDA] Problema com colisão de terreno e objeto 3D
Estou usando o transform.Translate para mover meu personagem, mas dependendo do relevo do terreno ele acaba atravessando e caindo. Tem alguma forma de reforçar a colisão do terreno? Já testei usar AddForce e velocity no rigidbody mas não da certo também, sem contar que eu estou usando o A/D para girar a camera e deixando o W/S para se mover.
mrariel2011- Avançado
- PONTOS : 3360
REPUTAÇÃO : 6
Idade : 25
Áreas de atuação : Modelagem(Basica)
Programação js, c#
Respeito as regras :
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Translate??? para mover? nuuuuuuuuuuuuuuuunca.
Translate e Rotation são métodos que fazem pequenos teleportes a cada frame, então é altamente aconselhável você jamais utiliza-los para mover o seu player.
o certo mesmo é utilizar um CharacterController, más se não for possível, usa-se Rigidbody.velocity.
Mostre como implementou o velocity e por que não deu certo...
Translate e Rotation são métodos que fazem pequenos teleportes a cada frame, então é altamente aconselhável você jamais utiliza-los para mover o seu player.
o certo mesmo é utilizar um CharacterController, más se não for possível, usa-se Rigidbody.velocity.
Mostre como implementou o velocity e por que não deu certo...
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Aproveitando o post, existe algum problema usar o translate em uma bala? Vai atrapalhar seu eu quiser causar danos ou marcar uma parede com um tiro?
JohnnyKills- Membro
- PONTOS : 3381
REPUTAÇÃO : 1
Respeito as regras :
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
JohnnyKills escreveu:Aproveitando o post, existe algum problema usar o translate em uma bala? Vai atrapalhar seu eu quiser causar danos ou marcar uma parede com um tiro?
Tem problemas imennnnnnsos, pelo simples motivo do translate fazer pequenos teleportes, assim como o o rotation.
Mesmo o objeto entrando em um rigidbody, não vai haver detecção de colisão com o translate.
Para sistemas de tiro, o correto é utilizar raycast, evita muitos problemas. Más se isto não for possível, deve-se utilizar rigidbody.AddForce ou rigidbody.velocity
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Ao menos o que eu vi nos documentos da unity e depois tentei, o velocity , literalmente so manda para o Z, ele ignora a sua rotação e isso ja acaba entrando em conflito com a movimentação que implementei já que eu jogo o personagem para frente/tras e decido a direção com o A/D que gira a camera com o Rotate
mrariel2011- Avançado
- PONTOS : 3360
REPUTAÇÃO : 6
Idade : 25
Áreas de atuação : Modelagem(Basica)
Programação js, c#
Respeito as regras :
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Tem como postar este seu script de movimento???
Eu faço praticamente tudo com Velocity e Lerps pra tudo que é lado... fica muito fluido
Eu faço praticamente tudo com Velocity e Lerps pra tudo que é lado... fica muito fluido
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Consegui arrumar esse bug e manter o estilo de movimentação usando o CharacterController, obrigado pela ajuda
mrariel2011- Avançado
- PONTOS : 3360
REPUTAÇÃO : 6
Idade : 25
Áreas de atuação : Modelagem(Basica)
Programação js, c#
Respeito as regras :
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Retiro o que disse anteriormente kk, mesmo com o CharacterController.Move eu não consigo move-lo de acordo com a rotação da camera, teria que setar um botão para cada direção, tem alguma outra forma de realizar o mesmo que o Translate faz mas sem os mini teleports?mrariel2011 escreveu:Consegui arrumar esse bug e manter o estilo de movimentação usando o CharacterController, obrigado pela ajuda
Parte que diz respeito a movimentação:
// gravidade
function Queda()
{
if(!charactercontrol.isGrounded)
charactercontrol.Move(new Vector3(0,-velocpulo/2,0) * Time.deltaTime);
}
// Movimentação /////////////////////////
function Movimentacao()
{
if(!jump && run == -1 && walk == -1 && agachado == -1)
{
timer += 1*Time.deltaTime;
if(timer >= 10)
{
print("rolou");
postura = 5*Random.value;
timer = 0;
}
}
if(Input.GetKeyDown("space") && !jump && charactercontrol.isGrounded)
{
walk = -1;
run = -1;
agachado = -1;
jump = true;
velocqueda = -velocpulo;
http://rb.AddForce(0,100,0);
}
else
jump = false;
if(Input.GetKey("w"))
{
if(posaga)
{
agachado = 1;
charactercontrol.Move(new Vector3(veloc/2,0,0));
}
else
{
charactercontrol.Move(new Vector3(veloc,0,0));
walk = 1;
}
}
else if (Input.GetKey("s"))
{
if(posaga)
{
agachado = 2;
charactercontrol.Move(new Vector3(-veloc/2,0,0));
}
else
{
walk = 0;
charactercontrol.Move(new Vector3(-veloc,0,0));
}
}
else
{
if(posaga)
{
agachado = 0;
}
walk = -1;
}
if(Input.GetKey("w") && Input.GetKey(KeyCode.LeftShift) && !TravelMode.gameObject.activeSelf)
{
run = 1;
walk = -1;
charactercontrol.Move(new Vector3(veloc,0,0));
}
else if (Input.GetKey("s") && Input.GetKey(KeyCode.LeftShift) && !TravelMode.gameObject.activeSelf)
{
run = 0;
walk = -1;
transform.Translate(0,0,-veloc*3);
}
else
{
run = -1;
}
if(Input.GetKeyDown("c") && !posaga)
{
posaga = true;
}
else if(Input.GetKeyDown("c") && posaga)
{
posaga = false;
agachado = -1;
}
if(Input.GetKey("d"))
{
transform.Rotate(0,3,0);
Rottrava = transform.rotation.y;
}
else if(Input.GetKey("a"))
{
transform.Rotate(0,-3,0);
Rottrava = transform.rotation.y;
}
else
transform.rotation.y = Rottrava;
if(Input.GetKeyDown("r") && !TravelMode.gameObject.activeSelf)
{
TravelMode.gameObject.SetActive(true);
Corpo.gameObject.SetActive(false);
print("a");
veloc = 2;
}
else if(Input.GetKeyDown("r") && TravelMode.gameObject.activeSelf)
{
TravelMode.gameObject.SetActive(false);
Corpo.gameObject.SetActive(true);
print("b");
veloc = 0.1;
}
}
mrariel2011- Avançado
- PONTOS : 3360
REPUTAÇÃO : 6
Idade : 25
Áreas de atuação : Modelagem(Basica)
Programação js, c#
Respeito as regras :
Re: [DUVIDA] Problema com colisão de terreno e objeto 3D
Algum motivo específico para você não estar utilizando FPS controller???
Tópicos semelhantes
» [RESOLVIDO] Problema de colisão Unity + Objeto
» [Duvida] Problema com terreno e texturas
» Colisão no terreno
» É possivel detectar colisão de um objeto filho pelo objeto pai?
» Como faço a colisão do terreno em um jogo estilo Beat n' Up?
» [Duvida] Problema com terreno e texturas
» Colisão no terreno
» É possivel detectar colisão de um objeto filho pelo objeto pai?
» Como faço a colisão do terreno em um jogo estilo Beat n' Up?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos