Hi everyone, sorry for my English level.
My problems it’s: I can use method in my enemy in there include scripts TakeDamage().
My Player attack class:
`
public class PlayerAttack : MonoBehaviour {
private Animator anim;
private PlayerCharacteristics PlayerCharacteristics;
// Attack
public Transform attackPoint;
public float attackRange = 0.5f;
public LayerMask enemyLayers;
private void Start()
{
anim = GetComponent<Animator>();
PlayerCharacteristics = GetComponent<PlayerCharacteristics>();
}
// Attack method
public void Attack()
{
if (PlayerCharacteristics.startAtkCoolDown == 0)
{
PlayerCharacteristics.startAtkCoolDown = PlayerCharacteristics.attackCoolDown;
// Play an attack animation
anim.SetTrigger("Attack");
// Detect enemies in range of attack
Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayers);
// Damage enemies
foreach (Collider2D enemy in hitEnemies)
{
enemy.GetComponent<Enemy>().TakeDamage();
// Enemy mark wrong and It say "Could not find namespace type or name"
}
}
}
void OnDrawGizmosSelected()
{
if (attackPoint != null)
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(attackPoint.position, attackRange);
}
}
}
`
and it’s my enemy class
`
public class Enemy : MonoBehaviour {
// Player health
public float maxHealth;
public float currentHealth;
// Player mana
public float maxMana;
public float currentMana;
// Player data
public int level;
public int strength;
// Attack power
public float attack;
void Start()
{
// Health
currentHealth = maxHealth;
// Mana
currentMana = maxMana;
// Attack
attack = (level + (strength * 3) + 10);
}
public void **TakeDamage**(float damage)
{
currentHealth -= damage;
Debug.Log("Damage...");
if (currentHealth <= 0)
{
Die();
}
}
void Die()
{
Debug.Log(name + " - enemy died!");
Destroy(gameObject);
}
}
`