[RESOLVIDO] Dano no inimigo
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Dano no inimigo
Preciso de ajuda, quando eu dou dano no meu inimigo a vida dele não abaixa e ele não faz o gesto de morto. Esse é o erro que aparece :
"NullReferenceException: Object reference not set to an instance of an object
MeleeSystem.Update () (at Assets/scripts/MeleeSystem.cs:32)" e quando dou play aparece: "Object reference not set to an instance of an object".
Como posso resolver isso?
script que está no player:
script do inimigo:
"NullReferenceException: Object reference not set to an instance of an object
MeleeSystem.Update () (at Assets/scripts/MeleeSystem.cs:32)" e quando dou play aparece: "Object reference not set to an instance of an object".
Como posso resolver isso?
script que está no player:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MeleeSystem : MonoBehaviour {
private Arvere Arvore;
public int tamanhoDoBracoDoRapaz = 4;
private AnimMichael Mick;
// Use this for initialization
void Start () {
}
// Update is called once per frame
private void Update () {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 15)) {
if (hit.distance <= tamanhoDoBracoDoRapaz) {
if (Input.GetMouseButtonDown (0)) {
if (hit.collider.tag == "Arvore") {
Arvore = hit.collider.GetComponentInParent<Arvere> ();
Dano ();
}
}
}
}
if (Input.GetMouseButtonDown (0)) {
if (hit.collider.tag == "Inimigo")
Mick = hit.collider.GetComponentInChildren<AnimMichael> ();
Mick.VidaMike -= 2;
}
}
void Dano(){
Arvore.ArvoHP -= 1;
Debug.Log (Arvore.ArvoHP);
}
}
script do inimigo:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class AnimMichael : MonoBehaviour {
public Transform Player;
private Animator Anim;
private NavMeshAgent motor;
public bool cacando;
public int distanciaMinima;
public bool VivoMike;
public int VidaMike = 8;
// Use this for initialization
void Start () {
Anim = this.GetComponent<Animator> ();
motor = this.GetComponent<NavMeshAgent> ();
if (VivoMike = true) {
} else {
VivoMike = false;
}
}
// Update is called once per frame
void Update ()
{
float Distancia = Vector3.Distance (transform.position, Player.position);
if (VidaMike <= 0) {
VidaMike = 0;
VivoMike = false;
}
if (VivoMike) {
if (cacando) {
Anim.SetBool ("Andando", true);
motor.SetDestination (Player.position);
if (Distancia < motor.stoppingDistance) {
Anim.SetBool ("Andando", false);
Anim.SetBool ("Atacando", true);
Anim.SetBool ("Morto", false);
} else {
Anim.SetBool ("Andando", true);
Anim.SetBool ("Atacando", false);
}
} else {
Anim.SetBool ("Andando", false);
motor.ResetPath ();
}
if (Distancia <= distanciaMinima) {
cacando = true;
} else {
cacando = false;
}
} else {
cacando = false;
Anim.SetBool ("Morto", true);
}
}
}
leonardolopes- Avançado
- PONTOS : 2000
REPUTAÇÃO : 3
Respeito as regras :
Re: [RESOLVIDO] Dano no inimigo
Tenta agora:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MeleeSystem : MonoBehaviour {
private Arvere Arvore;
public int tamanhoDoBracoDoRapaz = 4;
private AnimMichael Mick;
// Use this for initialization
void Start () {
}
// Update is called once per frame
private void Update () {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 15)) {
if (hit.distance <= tamanhoDoBracoDoRapaz) {
if (Input.GetMouseButtonDown (0)) {
if (hit.collider.tag == "Arvore") {
Arvore = hit.collider.GetComponentInParent<Arvere> ();
Dano ();
}
}
}
}
if (Input.GetMouseButtonDown (0)) {
if (hit.collider.tag == "Inimigo")
Mick = hit.collider.GetComponentInChildren<AnimMichael> ();
AnimMichael.VidaMike -= 2;
}
}
void Dano(){
Arvore.ArvoHP -= 1;
Debug.Log (Arvore.ArvoHP);
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class AnimMichael : MonoBehaviour {
public Transform Player;
private Animator Anim;
private NavMeshAgent motor;
public bool cacando;
public int distanciaMinima;
public bool VivoMike;
public static int VidaMike = 8;
// Use this for initialization
void Start () {
Anim = this.GetComponent<Animator> ();
motor = this.GetComponent<NavMeshAgent> ();
if (VivoMike = true) {
} else {
VivoMike = false;
}
}
// Update is called once per frame
void Update ()
{
float Distancia = Vector3.Distance (transform.position, Player.position);
if (VidaMike <= 0) {
VidaMike = 0;
VivoMike = false;
}
if (VivoMike) {
if (cacando) {
Anim.SetBool ("Andando", true);
motor.SetDestination (Player.position);
if (Distancia < motor.stoppingDistance) {
Anim.SetBool ("Andando", false);
Anim.SetBool ("Atacando", true);
Anim.SetBool ("Morto", false);
} else {
Anim.SetBool ("Andando", true);
Anim.SetBool ("Atacando", false);
}
} else {
Anim.SetBool ("Andando", false);
motor.ResetPath ();
}
if (Distancia <= distanciaMinima) {
cacando = true;
} else {
cacando = false;
}
} else {
cacando = false;
Anim.SetBool ("Morto", true);
}
}
}
JohnRambo- Moderador
- PONTOS : 5174
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: [RESOLVIDO] Dano no inimigo
muito obrigado mano, vc me ajudou muito.
leonardolopes- Avançado
- PONTOS : 2000
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Tomar dano do inimigo e causar dano no mesmo
» Inimigo não recebe dano(RESOLVIDO)
» [RESOLVIDO] inimigo não sofre dano
» [RESOLVIDO] Como faço pro inimigo dar dano no personagem (jogo 2D de plataforma)
» dano inimigo 2D
» Inimigo não recebe dano(RESOLVIDO)
» [RESOLVIDO] inimigo não sofre dano
» [RESOLVIDO] Como faço pro inimigo dar dano no personagem (jogo 2D de plataforma)
» dano inimigo 2D
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos