Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Can't give Enemys Damage?!

Discussion in 'Scripting' started by TheftAdi, Aug 23, 2014.

  1. TheftAdi

    TheftAdi

    Joined:
    Jul 24, 2014
    Posts:
    10
    Hello,

    I made a Script to give a Enemy Damage but it wont work..

    ShootScript:
    Code (CSharp):
    1. if(rayhit.collider.tag == "Enemy"){
    2.                     audio.PlayOneShot (HitMarker);
    3.  
    4.                     rayhit.collider.gameObject.GetComponent<Enemy>().TakeDamage (Damage);
    5.                 }
    EnemyScript:
    Code (CSharp):
    1. public class Enemy : MonoBehaviour {
    2.  
    3.     public int Health = 100;
    4.  
    5.     void Update(){
    6.         if(Health <= 0){
    7.             Destroy (gameObject);
    8.         }
    9.     }
    10.  
    11.     public void TakeDamage(int Damage){
    12.         Damage -= Health;
    13.     }
    14. }
    Can someone help me? :/
     
  2. Ian094

    Ian094

    Joined:
    Jun 20, 2013
    Posts:
    1,548
    Try using "SendMessage".
    Code (CSharp):
    1. rayhit.collider.SendMessage("TakeDamage",Damage);
    and change line 12 on your Enemy script to :
    Code (CSharp):
    1. Health -= Damage;
     
    TheftAdi likes this.
  3. TheftAdi

    TheftAdi

    Joined:
    Jul 24, 2014
    Posts:
    10
    Thank you :) Your 2nd code was the problem :)