[RESOLVIDO] inimigo não sofre dano
5 participantes
Página 1 de 1
[RESOLVIDO] inimigo não sofre dano
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
Die();
}
}
void Die()
{
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
}
Última edição por Magnatah em Dom Abr 18, 2021 1:30 pm, editado 2 vez(es) (Motivo da edição : Coloque o Script dentro da CAIXA DE SCRIPT, Isso mantem o fórum Organizado.)
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
Boa tarde você está chamando o método: public void TakeDamage(int damage) em algum lugar do jogo?
Pois da forma como está o código so vejo a possibilidade deste trecho de código não está sendo chamado pos não há rotina de Update() neste código que você postou.
Para funcionar o código tem q ser chamado em algum ponto qualquer dúvida posta ae.
Pois da forma como está o código so vejo a possibilidade deste trecho de código não está sendo chamado pos não há rotina de Update() neste código que você postou.
Para funcionar o código tem q ser chamado em algum ponto qualquer dúvida posta ae.
darknecron- Iniciante
- PONTOS : 2648
REPUTAÇÃO : 3
Áreas de atuação : Unity & C#
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
Última edição por Magnatah em Dom Dez 13, 2020 8:40 pm, editado 1 vez(es) (Motivo da edição : Coloque o Script dentro da CAIXA DE SCRIPT, Isso mantem o fórum Organizado.)
NaDaZInNUnity- Iniciante
- PONTOS : 1671
REPUTAÇÃO : 1
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
sim esta sendo chamado no player como enemy.GetComponent<Animator>().TakeDamage(attackDamage);darknecron escreveu:Boa tarde você está chamando o método: public void TakeDamage(int damage) em algum lugar do jogo?
Pois da forma como está o código so vejo a possibilidade deste trecho de código não está sendo chamado pos não há rotina de Update() neste código que você postou.
Para funcionar o código tem q ser chamado em algum ponto qualquer dúvida posta ae.
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
muito obrigado agora estou com erro no combo do meu personagem mais é só na linha enemy.GetComponent<Animator>().TakeDamage(attackDamage); eu vou tentar arrumar isso ae mais de resto valeuNaDaZInNUnity escreveu:Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
RenanHero escreveu:muito obrigado agora estou com erro no combo do meu personagem mais é só na linha enemy.GetComponent<Animator>().TakeDamage(attackDamage); eu vou tentar arrumar isso ae mais de resto valeuNaDaZInNUnity escreveu:Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
Eu acho que sei como resolver este erro. Voce está querendo chamar esta void quando realizar a animação não é?
Pokedlg- ProgramadorMaster
- PONTOS : 2339
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: [RESOLVIDO] inimigo não sofre dano
simPokedlg escreveu:RenanHero escreveu:muito obrigado agora estou com erro no combo do meu personagem mais é só na linha enemy.GetComponent<Animator>().TakeDamage(attackDamage); eu vou tentar arrumar isso ae mais de resto valeuNaDaZInNUnity escreveu:Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
Eu acho que sei como resolver este erro. Voce está querendo chamar esta void quando realizar a animação não é?
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
RenanHero escreveu:simPokedlg escreveu:RenanHero escreveu:muito obrigado agora estou com erro no combo do meu personagem mais é só na linha enemy.GetComponent<Animator>().TakeDamage(attackDamage); eu vou tentar arrumar isso ae mais de resto valeuNaDaZInNUnity escreveu:Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
Eu acho que sei como resolver este erro. Voce está querendo chamar esta void quando realizar a animação não é?
Voce terá que criar um evento para a animação
Pokedlg- ProgramadorMaster
- PONTOS : 2339
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: [RESOLVIDO] inimigo não sofre dano
Ok valeuPokedlg escreveu:RenanHero escreveu:simPokedlg escreveu:RenanHero escreveu:muito obrigado agora estou com erro no combo do meu personagem mais é só na linha enemy.GetComponent<Animator>().TakeDamage(attackDamage); eu vou tentar arrumar isso ae mais de resto valeuNaDaZInNUnity escreveu:Faz Assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int maxHealth = 100;
int currentHealth;
public Animator anim;
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
}
// Update is called once per frame
void die() {
Debug.Log("Enemy died");
anim.SetBool("Die", true);
GetComponent<BoxCollider>().enabled = false;
this.enabled = false;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
anim.SetTrigger("Hurt");
if(currentHealth <= 0)
{
die();
}
}
Eu acho que sei como resolver este erro. Voce está querendo chamar esta void quando realizar a animação não é?
Voce terá que criar um evento para a animação
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
é só clicar no add event no frame da animação que deseja colocar o evento
Depois vai aparecer essa aba e é só colocar o nome da sua void que deseja na função
Depois vai aparecer essa aba e é só colocar o nome da sua void que deseja na função
Última edição por Pokedlg em Qua Dez 23, 2020 4:46 pm, editado 1 vez(es)
Pokedlg- ProgramadorMaster
- PONTOS : 2339
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: [RESOLVIDO] inimigo não sofre dano
valeu amigoPokedlg escreveu:é só clicar no add event no frame da animação que deseja colocar o evento
Depois vai aparecer essa aba e é só colocar o nome da sua void que deseja na função
RenanHero- Iniciante
- PONTOS : 2022
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] inimigo não sofre dano
RenanHero escreveu:valeu amigoPokedlg escreveu:é só clicar no add event no frame da animação que deseja colocar o evento
Depois vai aparecer essa aba e é só colocar o nome da sua void que deseja na função
Denada
Pokedlg- ProgramadorMaster
- PONTOS : 2339
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
» Dano do inimigo
» dano inimigo 2D
» Inimigo não recebe dano(RESOLVIDO)
» (Ajuda) Dano ao inimigo
» [RESOLVIDO] Objeto não sofre efeito da gravidade Unity
» dano inimigo 2D
» Inimigo não recebe dano(RESOLVIDO)
» (Ajuda) Dano ao inimigo
» [RESOLVIDO] Objeto não sofre efeito da gravidade Unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos