Health bar/damage script not working. Please help.
I have a script for my enemy health bar and for my bullet and im pretty sure it should work but when bullet hits the enemy but the health bar doesnt move and console says this:
NullReferenceException: Object reference not set to an instance of an object bullet.OnTriggerEnter2D (UnityEngine.Collider2D col) (at Assets/Scripts/bullet.cs:29)
enemy hp code:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class enemyhp : MonoBehaviour {
public int starthealth = 100;
public int health;
public Image healthbar;
public void Start()
{
health = starthealth;
}
public void Update()
{
if (health <= 0)
{
die();
}
}
public void TakeDamage(int Damage)
{
health -= Damage;
}
public void LateUpdate()
{
healthbar.fillAmount = health / starthealth;
}
void die ()
{
Destroy(gameObject);
}
}
bullet code:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class bullet : MonoBehaviour {
public float moveSpeed = 7f;
Rigidbody2D rb;
player target;
Vector2 moveDirection;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody2D>();
target = GameObject.FindObjectOfType<player>();
moveDirection = (target.transform.position - transform.position).normalized * moveSpeed;
rb.velocity = new Vector2(moveDirection.x, moveDirection.y);
Destroy(gameObject, 3f);
}
// Update is called once per frame
void OnTriggerEnter2D (Collider2D col)
{
if (col.gameObject.tag.Equals ("enemyhitbox"))
{
Debug.Log("Hit!");
col.gameObject.GetComponent<enemyhp>().TakeDamage(25);
Destroy(gameObject);
}
}
}
Your answer
Follow this Question
Related Questions
Tool Durability if Hit any Collider 1 Answer
How to make health and damage script function correctly? 3 Answers
Health and Damage Script Not Working 2 Answers
Huge Health and Damage Script Problem 0 Answers
Health bar help 1 Answer