//------------------------Collision Handling------------------------ private void OnCollisionEnter2D(Collision2D collision) //Handles collisions between player and physical GameObjects { GameObject other = collision.gameObject; Vector2 collisionDirection = transform.position - other.transform.position; if (canTakeDamage) //Player touches an enemy { if (other.tag == "Enemy") //Player takes damage from contact with enemy { RangeEnemy rangeScript = other.GetComponent <RangeEnemy>(); MeleeEnemy meleeScript = other.GetComponent <MeleeEnemy>(); if (rangeScript) { TakeDamage(rangeScript.Damage, collisionDirection); } else if (meleeScript) { TakeDamage(meleeScript.Damage, collisionDirection); } } else if (other.tag == "EnemyProjectile") //Player touches an enemy's projectile { Projectile projScript = other.GetComponent <Projectile>(); if (projScript) //Player takes damage from contact with enemy's projectile { TakeDamage(projScript.Damage, collisionDirection); Destroy(other); } } } }
private void OnTriggerEnter(Collider other) { enemySpawnManager = GameObject.Find("Enemy Spawn Manager").GetComponent <EnemySpawnManager>(); playerStats = GameObject.Find("GameManager").GetComponent <PlayerStats>(); if (other.gameObject.CompareTag("Range Enemy")) { prefabs.SetActive(false); rangeEnemy = other.GetComponent <RangeEnemy>(); rangeEnemy.healthRangeEnemy -= playerStats.attackPower; if (rangeEnemy.healthRangeEnemy <= 0) { other.gameObject.SetActive(false); rangeEnemy.healthRangeEnemy = 100; other.gameObject.transform.position = enemySpawnManager.RandomPosition(); rangeEnemy.weaponIsActive = true; } } if (other.gameObject.CompareTag("Melee Enemy")) { prefabs.SetActive(false); meleeEnemy = other.GetComponent <MeleeEnemy>(); meleeEnemy.healthMeleeEnemy -= playerStats.attackPower; if (meleeEnemy.healthMeleeEnemy > 0) { meleeEnemy.SkeletonAnim.SetTrigger("GetDamage"); } } }
private void Awake() { stateMachine = GetComponent <RangeSM>(); rangeEnemy = GetComponentInParent <RangeEnemy>(); navMeshAgent = GetComponentInParent <NavMeshAgent>(); animator = GetComponentInParent <Animator>(); player = FindObjectOfType <Player>(); }
void Start() { bulletPool = GameObject.FindGameObjectWithTag("BulletPool").transform; thisEnemy = GetComponent <RangeEnemy>(); player = GameManager.instance.GetPlayer(); }