Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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;
    }