예제 #1
0
    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;
            }
        }
    }
예제 #2
0
    void Damage(Transform enemy)
    {
        TD_SBF_Enemy e = enemy.GetComponent <TD_SBF_Enemy>();

        if (e)
        {
            e.TakeDamage(damage);
        }
    }
예제 #3
0
    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);
    }