コード例 #1
0
    protected virtual void Update()
    {
        if (health <= 0)
        {
            Destroy(gameObject);
            return;
        }
        else
        {
            if (moving || rotatingBody || rotatingTurret || !reloadingComplete || aiming)
            {
                deviation = Mathf.Lerp(deviation, 0.2f, 2 * Time.deltaTime);
            }
            else
            {
                deviation = Mathf.Lerp(deviation, 0, 2 * Time.deltaTime);
            }
        }

        //need to get the enemies from the triggers in the body and turret. Use the getter function in the tirggercall
        for (int i = 0; i < bodyTriggerRef.GetEnemies().Count; i++)
        {
            if (!enemies.Contains(bodyTriggerRef.GetEnemies()[i]))
            {
                enemies.Add(bodyTriggerRef.GetEnemies()[i]);
            }
        }

        for (int i = 0; i < turretTriggerRef.GetEnemies().Count; i++)
        {
            if (!enemies.Contains(turretTriggerRef.GetEnemies()[i]))
            {
                enemies.Add(turretTriggerRef.GetEnemies()[i]);
            }
        }
        if (enemies.Count > 0)
        {
            for (int i = 0; i < enemies.Count; i++)
            {
                List <GameObject> turretEnemyList = turretTriggerRef.GetEnemies();
                List <GameObject> bodyEnemyList   = bodyTriggerRef.GetEnemies();
                if (!turretEnemyList.Contains(enemies[i]) && !bodyEnemyList.Contains(enemies[i]))
                {
                    Debug.Log("enemy no longer in vision distance");
                    enemies.Remove(enemies[i]);
                    enemies.TrimExcess();
                }
            }
        }



        for (int i = 0; i < bodyTriggerRef.GetWorldProps().Count; i++)
        {
            if (!obstacles.Contains(bodyTriggerRef.GetWorldProps()[i]))
            {
                obstacles.Add(bodyTriggerRef.GetWorldProps()[i]);
            }
        }


        for (int i = 0; i < turretTriggerRef.GetWorldProps().Count; i++)
        {
            if (!obstacles.Contains(turretTriggerRef.GetWorldProps()[i]))
            {
                obstacles.Add(turretTriggerRef.GetWorldProps()[i]);
            }
        }
    }