private bool findTarget() { float minDis = maxTargetDis; GameObject minDisEnemy = null; GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy"); foreach (var enemy in enemys) { if (enemy.GetComponent <Enemy>() != null && !enemy.GetComponent <Enemy>().isDead) { float ang = Vector3.Angle(myDirection, enemy.transform.position - transform.position); float dis = Vector3.Distance(transform.position, enemy.transform.position); if (ang <= maxTrackAngle && dis >= minTargetDis && dis < minDis) { minDis = dis; minDisEnemy = enemy; } } } if (minDisEnemy != null) { target = minDisEnemy.GetComponent <Enemy>(); trackState = TrackRocketState.HASTARGET; return(true); } target = null; trackState = TrackRocketState.NOTARGET; return(false); }
private bool findTarget() { float minDis = maxTargetDis; GameObject minDisEnemy = null; GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy"); foreach (var enemy in enemys) { if (enemy.GetComponent<Enemy>() != null && !enemy.GetComponent<Enemy>().isDead) { float ang = Vector3.Angle(myDirection, enemy.transform.position - transform.position); float dis = Vector3.Distance(transform.position, enemy.transform.position); if (ang <= maxTrackAngle && dis >= minTargetDis && dis < minDis) { minDis = dis; minDisEnemy = enemy; } } } if (minDisEnemy != null) { target = minDisEnemy.GetComponent<Enemy>(); trackState = TrackRocketState.HASTARGET; return true; } target = null; trackState = TrackRocketState.NOTARGET; return false; }