inimigo não sofre dano
Página 1 de 1
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 Dez 13, 2020 8:39 pm, editado 1 vez(es) (Razão : Coloque o Script dentro da CAIXA DE SCRIPT, Isso mantem o fórum Organizado.)
RenanHero- Iniciante
- PONTOS : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: 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 : 1236
REPUTAÇÃO : 1
Áreas de atuação : Unity & C#
Respeito as regras :
Re: 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) (Razão : Coloque o Script dentro da CAIXA DE SCRIPT, Isso mantem o fórum Organizado.)
NaDaZInNUnity- Iniciante
-
PONTOS : 262
REPUTAÇÃO : 0
Idade : 20
Respeito as regras :
Re: inimigo não sofre dano
Ja tentou chamar a void TakeDamage e a void die no Update?
SauloeArthur- MembroAvançado
-
PONTOS : 228
REPUTAÇÃO : 0
Idade : 14
Áreas de atuação : Iniciante em C#;
Iniciante em Javascript;
Iniciante em elétrica;
Fazendo um website;
Respeito as regras :
Re: 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 : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: 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 valeu@NaDaZInNUnity 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 : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: 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 valeu@NaDaZInNUnity 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- Programador
-
PONTOS : 280
REPUTAÇÃO : 36
Áreas de atuação : void Start () {
Programador iniciante em C#;
}
Respeito as regras :
Re: inimigo não sofre dano
sim@Pokedlg 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 valeu@NaDaZInNUnity 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 : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: inimigo não sofre dano
@RenanHero escreveu:sim@Pokedlg 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 valeu@NaDaZInNUnity 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- Programador
-
PONTOS : 280
REPUTAÇÃO : 36
Áreas de atuação : void Start () {
Programador iniciante em C#;
}
Respeito as regras :
Re: inimigo não sofre dano
Ok valeu@Pokedlg escreveu:@RenanHero escreveu:sim@Pokedlg 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 valeu@NaDaZInNUnity 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 : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: 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- Programador
-
PONTOS : 280
REPUTAÇÃO : 36
Áreas de atuação : void Start () {
Programador iniciante em C#;
}
Respeito as regras :
Re: inimigo não sofre dano
valeu amigo@Pokedlg 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 : 583
REPUTAÇÃO : 1
Respeito as regras :
Re: inimigo não sofre dano
@RenanHero escreveu:valeu amigo@Pokedlg 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- Programador
-
PONTOS : 280
REPUTAÇÃO : 36
Áreas de atuação : void Start () {
Programador iniciante em C#;
}
Respeito as regras :
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum