IEnumerator Didattack() { animation.CrossFadeQueued("attack", 0.1f, QueueMode.PlayNow); yield return(new WaitForSeconds(attackHitTime)); Vector3 pos = transform.TransformPoint(attackPosition); GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); foreach (GameObject go in enemies) { EnemyDamaged enemy = go.GetComponent <EnemyDamaged>(); if (enemy == null) { Debug.Log("enemy damage = null"); continue; } if (Vector3.Distance(enemy.transform.position, pos) < attackRadius) { enemy.SendMessage("ApplyDamage", attackDamage); /* Play sound. * if (attackSound) * audio.PlayOneShot(attackSound);*/ } } yield return(new WaitForSeconds(attackTime - attackHitTime)); busy = false; }
void OnCollisionEnter2D(Collision2D other) { EnemyDamaged enemy = other.collider.GetComponent <EnemyDamaged>(); if (enemy != null) { enemy.Damage(despawnTime); } else { EnemyDamagedRevives e = other.collider.GetComponent <EnemyDamagedRevives>(); if (e != null) { e.Damage(despawnTime); } } /*EnemyControllerCrabtopus cenemy = other.collider.GetComponent<EnemyControllerCrabtopus>(); * if (cenemy != null) * { * cenemy.Damage(despawnTime); * }*/ Destroy(gameObject, despawnTime / 5); }
IEnumerator Start() { characterController = GetComponent <CharacterController>(); dead = GetComponent <EnemyDamaged>(); if (!target) { target = GameObject.FindWithTag("Player").transform; } animation.Play("Idle"); animation["Run"].wrapMode = WrapMode.Loop; animation ["Attack_Medium_01"].wrapMode = WrapMode.Once; animation["Attack_Medium_01"].layer = 1; yield return(new WaitForSeconds(Random.value)); while (true) { // Don't do anything when idle. And wait for player to be in range! // This is the perfect time for the player to attack us yield return(StartCoroutine(wander())); //wander(); // Prepare, turn to player and attack him yield return(StartCoroutine(Attack())); } }
public void TakeDamage(int damage) { if ((enemyHealth -= damage) <= 0f) { Die(); } EnemyDamaged?.Invoke(); enemyHealth -= damage; }
void OnCollisionEnter(Collision hit) { Vector3 pos = transform.TransformPoint(0, 0, .8f); GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); foreach (GameObject go in enemies) { EnemyDamaged enemy = go.GetComponent <EnemyDamaged> (); if (hit.gameObject.tag == "Enemy" && Vector3.Distance(enemy.transform.position, pos) < 1f) // compare the object name { enemy.SendMessage("ApplyDamage", attackHitPoints); Destroy(gameObject); } } }
private void Start() { enemyDamagedScript = GetComponent <EnemyDamaged>(); BossAnimator = GetComponent <Animator>(); }