void UpdateTarget() { GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyTag); float shortestDistance = Mathf.Infinity; GameObject nearestEnemy = null; foreach (GameObject enemy in enemies) { float distanceToEnemy = Vector3.Distance(transform.position, enemy.transform.position); if (distanceToEnemy < shortestDistance) { shortestDistance = distanceToEnemy; nearestEnemy = enemy; } if (nearestEnemy && shortestDistance <= range) { target = nearestEnemy.transform; targetEnemy = nearestEnemy.GetComponent <TD_SBF_Enemy>(); } else { target = null; } } }
void Damage(Transform enemy) { TD_SBF_Enemy e = enemy.GetComponent <TD_SBF_Enemy>(); if (e) { e.TakeDamage(damage); } }
void Start() { currentPosition = transform.position; enemy = GetComponentInParent <TD_SBF_Enemy>(); throne = GameObject.FindGameObjectWithTag("Throne").GetComponent <Transform>(); InvokeRepeating("CheckPosition", 1f, 1.0f); InvokeRepeating("SetSortingLayer", 1f, 1.0f); InvokeRepeating("SetBodyMass", 1f, 1.0f); }