Como melhorar colisão
3 participantes
Página 1 de 1
Como melhorar colisão
oi pessoal, como estão?
eu queria saber como eu faço pra melhorar a colisão do projetil que eu atiro com o inimigo, porque de 6 tiros que acertam o inimigo, +ou- 4 colidem e tiram dano, os outros 2 atravessam. Eu queria acabar ou reduzir ao máximo essa margem de erro...
Esse script controla as animações do personagem e também faz com que ele receba dano... A parte que aborda colisão está no final do script.
eu queria saber como eu faço pra melhorar a colisão do projetil que eu atiro com o inimigo, porque de 6 tiros que acertam o inimigo, +ou- 4 colidem e tiram dano, os outros 2 atravessam. Eu queria acabar ou reduzir ao máximo essa margem de erro...
Esse script controla as animações do personagem e também faz com que ele receba dano... A parte que aborda colisão está no final do script.
- Código:
using UnityEngine;
using System.Collections;
public class AnimZombie : MonoBehaviour {
private Animator morteZumbi;
private Animator ataqueZumbi;
private Animator zumbiAndar;
public bool cair_morto;
public bool ataque;
public bool andar;
public float distanciaAndar;
public float distanciaAtacar;
public float vidaInimigo;
public float dano;
private float danoATirarDoJogador;
private bool atacandoJogador;
private float cronometroDeAtaque;
void Start () {
morteZumbi = GetComponent<Animator> ();
cair_morto = false;
ataqueZumbi = GetComponent<Animator> ();
ataque = false;
zumbiAndar = GetComponent<Animator> ();
andar = false;
vidaInimigo = 100;
dano = 20;
cronometroDeAtaque = 0;
danoATirarDoJogador = 30;
}
void Update () {
morteZumbi.SetBool ("cair_morto", cair_morto);
ataqueZumbi.SetBool ("ataque", ataque);
zumbiAndar.SetBool ("andar", andar);
distanciaAndar = Vector3.Distance(GameObject.Find("Jogador").transform.position, transform.position);
distanciaAtacar = Vector3.Distance(GameObject.Find("Jogador").transform.position, transform.position);
if(distanciaAndar > 2){
andar = true;
ataque = false;
}
if (cronometroDeAtaque > 1.5 && distanciaAtacar <= 2) {
ataque = true;
atacandoJogador = true;
VidaJogador.vidaJogador = VidaJogador.vidaJogador - danoATirarDoJogador;
andar = false;
cronometroDeAtaque = 0;
}
if (vidaInimigo <= 0) {
cair_morto = true;
cronometroDeAtaque = 0;
Destroy(gameObject, 0.8f);
}
cronometroDeAtaque += Time.deltaTime;
}
void OnCollisionEnter (Collision col){
if (col.gameObject.tag == "Bala") {
vidaInimigo -= dano;
}
}
}
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Como melhorar colisão
Da uma olhada neste vídeo:
Você vai ter que mudar as propriedades de colisão do rigidbody, para continous dinamic e extrapolar
Você vai ter que mudar as propriedades de colisão do rigidbody, para continous dinamic e extrapolar
Re: Como melhorar colisão
mas eu tenho que fazer isso com a bala e com o inimigo? porque eu fiz com a bala e com o inimigo e continua do mesmo jeito...
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Como melhorar colisão
Pessoal se puderem me ajudar ficarei bastante agradecido
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Como melhorar colisão
E pq OnCollision sempre da problemas , tentar aumentar o collider da bala.
Ou usar um hit collider.
Ou usar um hit collider.
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: Como melhorar colisão
Cara, o ideal é usar Raycast para fazer um sistema descente de tiro, más se quiser utilizar Colisões, tente isto:
Edit > Project Settings > Physics > Solver Interation Count
Tente colocar um valor maior ali, vai aumentar a precisão dos Rigidbody
Edit > Project Settings > Physics > Solver Interation Count
Tente colocar um valor maior ali, vai aumentar a precisão dos Rigidbody
Re: Como melhorar colisão
Vou tentar... Mas como é esse raycast??? Nunca ouvi falar
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Como melhorar colisão
Raycast você emite um raio em uma direção o tempo todo, o raio é instantâneo...
Você pode pegar várias propriedades do raio como por exemplo, o lugar onde ele colidiu, qual objeto é, o nome do objeto, a tag do objeto, etc, etc... Então vou dar um exemplo...
Você emite um Raycast para frente da arma e o raycast está batendo no inimigo no momento que você da o tiro... Ai basta pegar o hit ( objeto onde o raycast bateu) e pegar o script de vida desse hit e descontar vida... eh um tanto mais fácil e melhor.
Você pode pegar várias propriedades do raio como por exemplo, o lugar onde ele colidiu, qual objeto é, o nome do objeto, a tag do objeto, etc, etc... Então vou dar um exemplo...
Você emite um Raycast para frente da arma e o raycast está batendo no inimigo no momento que você da o tiro... Ai basta pegar o hit ( objeto onde o raycast bateu) e pegar o script de vida desse hit e descontar vida... eh um tanto mais fácil e melhor.
Re: Como melhorar colisão
Vc tem um tutorial aplicando exemplos na unity?
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Como melhorar colisão
cara raycast é ótimo! vi um tutorial no youtube e consegui colocar no meu jogo que ja esta quase pronto! obrigado pela dica!
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Tem como melhorar a colisao? os objetos entram nos outros, caem do chao ,etc..
» Tem como melhorar ?
» Como melhorar o desempenho mobile?
» Como melhorar desempenho de animações
» [DUVIDA] como melhorar a jogabilidade de um jogo 2D
» Tem como melhorar ?
» Como melhorar o desempenho mobile?
» Como melhorar desempenho de animações
» [DUVIDA] como melhorar a jogabilidade de um jogo 2D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos