Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Guest, before posting your code please take these rules into consideration:
    • It is required to use our BBCode feature to display your code. While within the editor click < / > or >_ and place your code within the BB Code prompt. This helps others with finding a solution by making it easier to read and easier to copy.
    • You can also use markdown to share your code. When using markdown your code will be automatically converted to BBCode. For help with markdown check out the markdown guide.
    • Don't share a wall of code. All we want is the problem area, the code related to your issue.


    To learn more about how to use our BBCode feature, please click here.

    Thank you, Code Forum.

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,
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
    }


}
I am very new to Unity.
 
Hey there,

I'm not too familiar with Unity/C# myself, but I'll see what I can find about this.

Is there anything in the console logs?
 

New Threads

Latest posts

Buy us a coffee!

Back
Top Bottom