Usar hitbox
Página 1 de 1
Usar hitbox
Opa!
Então mais uma vez estou com uma leve dificuldade.
Estou tentando usar hitbox pra quando chegar perto do meu inimigo e eu apertar o mouse0 ele rodar a animação e tirar um tanto de vida do meu inimigo, mas quando chego perto do inimigo, a hitbox identifica ele e não volta mais a identificar, ficando impossivel de eu aplicar o dano no inimigo. Meu código é o seguinte:
Alguém poderia por favor me dar uma solução pra esse caso?
Então mais uma vez estou com uma leve dificuldade.
Estou tentando usar hitbox pra quando chegar perto do meu inimigo e eu apertar o mouse0 ele rodar a animação e tirar um tanto de vida do meu inimigo, mas quando chego perto do inimigo, a hitbox identifica ele e não volta mais a identificar, ficando impossivel de eu aplicar o dano no inimigo. Meu código é o seguinte:
- Código:
using System.Collections;
using UnityEngine;
public class Ataque : MonoBehaviour {
public GameObject esqueleto;
public float vidaI; //esse é só pra chamar a minha variavel do meu outro código
public float danoP;
void Start(){
vidaI = esqueleto.GetComponent<DanoInimigo> ().vida; //msm coisa esse
danoP = 20;
}
void OnTriggerEnter2D(Collider2D other)
{
if(other.gameObject.tag == "Inimigo" && Input.GetButtonDown("Fire1")){
vidaI = vidaI - danoP;
}
print (vidaI); //ai aqui era pra ele estar me mostrando no console o tanto de vida após eu bater no desgraçado, mas ele retorna apenas o valor 0 e nada mais acontece.
}
}
Alguém poderia por favor me dar uma solução pra esse caso?
Re: Usar hitbox
Acabei dando uma atualizada no código, agora o print ta me retornando o valor real da vida do inimigo.
mas agr, o problema é q a hitbox so verifica uma vez mostrando a vida dele sempre em "100" ai não consigo bater nele arrancando a vida dele, só consegui uma vez, mas foi quando encostei a hitbox e cliquei no mouse ao msm tempo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ataque : MonoBehaviour {
public GameObject inimigo;
public float vidaInimigo;
private float danoP;
void Update(){
danoP = 20;
vidaInimigo = inimigo.GetComponent<DanoInimigo> ().vida;
}
void OnTriggerEnter2D (Collider2D other){
if (other.gameObject.tag == "Inimigo" && Input.GetButtonDown("Fire1")) {
vidaInimigo = vidaInimigo - danoP;
}
print (vidaInimigo);
}
}
mas agr, o problema é q a hitbox so verifica uma vez mostrando a vida dele sempre em "100" ai não consigo bater nele arrancando a vida dele, só consegui uma vez, mas foi quando encostei a hitbox e cliquei no mouse ao msm tempo.
Re: Usar hitbox
Mudei mais uma vez, agora ele está verificando constantemente mas ainda há um problema:
Ele toda vez que dou um dano no inimigo, a vida dele volta para 100 automaticamente.
Ai nao sei como fazer pra isso parar de ocorrer :I
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ataque : MonoBehaviour {
public GameObject inimigo;
public float vidaInimigo;
private float danoP;
void Update(){
danoP = 20;
vidaInimigo = inimigo.GetComponent<DanoInimigo> ().vida;
}
void OnTriggerStay2D (Collider2D other){
if (other.gameObject.tag == "Inimigo" && Input.GetButtonDown("Fire1")) {
vidaInimigo = vidaInimigo - danoP;
}
print (vidaInimigo);
}
}
Ele toda vez que dou um dano no inimigo, a vida dele volta para 100 automaticamente.
Ai nao sei como fazer pra isso parar de ocorrer :I
Re: Usar hitbox
PRONTO! Finalmente consegui ajeitar esta merda.
É o seguinte, primeiro usei esse código no inimigo:
Usei uma hitbox que está como filha pro meu player e coloquei com a tag "Jojador" (?), ai blz por algum motivo da vida o codigo resolveu funcionar! RESOLVIDO
É o seguinte, primeiro usei esse código no inimigo:
- Código:
using System.Collections;
using UnityEngine;
public class InimigoStats : MonoBehaviour {
public int dano = 10;
public int vidaCheia = 100;
public float vida;
void Start()
{
vida = vidaCheia;
}
void Update()
{
if (vida >= vidaCheia)
{
vida = vidaCheia;
} else if (vida <= 0)
{
vida = 0;
}
if (vida <= 0)
{
Destroy (gameObject);
}
}
void OnTriggerStay2D(Collider2D other)
{
if((other.gameObject.tag == "Jojador") && (Input.GetButtonDown("Fire1")))
{
vida = vida - dano;
print(vida);
}
}
}
Usei uma hitbox que está como filha pro meu player e coloquei com a tag "Jojador" (?), ai blz por algum motivo da vida o codigo resolveu funcionar! RESOLVIDO
Tópicos semelhantes
» Usar Imagem em PHP
» Melee Combat HitBox Collider
» Como usar LOD Group para usar no Mass Place Trees
» Como usar: ScreenPointToRay
» Usar o GetComponent
» Melee Combat HitBox Collider
» Como usar LOD Group para usar no Mass Place Trees
» Como usar: ScreenPointToRay
» Usar o GetComponent
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos