jeilyfan124
New Coder
So, I have asked another Forum about and they didn't help. I just want when the two main characters get hit by a sword, they take damage. The take damage function works, but it never gets triggered. It goes into the Collider, but even when directly on top of the sword it doesn't trigger the take damage function. I also have the sword out of its parent and It still doesn't work. Any help would be appreciated. Also,
I am very new to Unity.
C#:
public int MaxHealth = 100;
public Slider HealthPointsBar;
public int CurrentHealth { get; private set; }
public Stat Damage,
Armor,
Souls;
public Animator animator;
void Awake()
{
CurrentHealth = MaxHealth;
}
public void OnCollisionEnter(Collision collision)
{
if (gameObject.CompareTag("Weapon"))
{
TakeDamge(5);
}
}
void Update()
{
}
public void SetHealth(int CurrentHealth)
{
HealthPointsBar.value = CurrentHealth;
}
public void TakeDamge (int Damage)
{
Damage -= Armor.GetValue();
Damage = Mathf.Clamp(Damage, 0, int.MaxValue);//So you dont get healed after attack
CurrentHealth -= Damage;
Debug.Log(transform.name + "takes" + Damage + "damge");
HealthPointsBar.value = CurrentHealth;
if (CurrentHealth <=0)
{
animator.Play("Death2");
Die();
}
else
{
animator.Play("TakingDamgeAnimation");
}
}
public virtual void Die()
{
///DIE AND MEANT TO BE OVERRIDDEN
}
}