Esempio n. 1
0
    void ResetEnemies()
    {
        for (int i = 0; i < enemies.Length; i++)
        {
            if (enemies[i].name == "Chuchu")
            {
                enemies[i].position = enemies[i].GetComponent <chuchuAtack>().initPos;
                enemies[i].GetComponent <chuchuAtack>().currentHealth = enemies[i].GetComponent <chuchuAtack>().maxHealth;
            }
            else
            {
                if (enemies[i] == null)
                {
                    UnityEngine.Object enemyRef   = Resources.Load(enemiesRefName[i]);
                    GameObject         enemyClone = (GameObject)Instantiate(enemyRef);
                    Enemy_Patrol       patrol     = enemyClone.GetComponent <Enemy_Patrol>();
                    enemyClone.transform.position = patrol.moveSpots[0].position;
                    enemies[i] = enemyClone.transform;
                }
                else
                {
                    Enemy_Patrol patrol = enemies[i].GetComponent <Enemy_Patrol>();
                    enemies[i].transform.position = patrol.moveSpots[0].position;
                }

                enemies[i].GetComponent <Enemy_Attack>().b = true;
            }
        }
    }
Esempio n. 2
0
    void Update()
    {
        aimDir = Enemy_Patrol.GetAimDir();
        fieldOfView.SetOrigin(transform.position);
        fieldOfView.SetAimDirection(aimDir);

        if (Mathf.Abs(Player.transform.position.x - transform.position.x) < viewDistance && Mathf.Abs(Player.transform.position.y - transform.position.y) < viewDistance)
        {
            Debug.Log(Player.transform.position.x - transform.position.x);
            Vector2 dirToPlayer = (Player.transform.position - transform.position).normalized;

            //Debug.Log(fov/2f);
            float angle = Vector2.Angle(aimDir, dirToPlayer);
            if (angle < fov / 2f)
            {
                //Debug.Log(angle);
                if (shootTime <= 0)
                {
                    GameObject arrow     = Instantiate(projectile, transform.position, Quaternion.identity);
                    Vector2    playerPos = Player.transform.position;
                    Vector2    enemyPos  = transform.position;
                    Vector2    direction = dirToPlayer;
                    arrow.GetComponent <Rigidbody2D>().velocity = direction * projectileSpeed;
                    arrow.GetComponent <Damage>().damage        = Random.Range(minDamage, maxDamage);
                    shootTime = startShootTime;
                }
                else
                {
                    shootTime -= Time.deltaTime;
                }
            }
        }
    }
Esempio n. 3
0
    void Start()
    {
        Raton         = GameObject.Find("Raton").transform;
        enemyRef      = Resources.Load(enemyRefName);
        Player        = GameObject.Find("PlayerSprite");
        currentHealth = maxHealth;
        shootTime     = startShootTime;
        fieldOfView   = Instantiate(pfFieldOfView, null).GetComponent <FieldOfView>();
        fieldOfView.SetFov(fov);
        fieldOfView.SetViewDistance(viewDistance);

        Patrol = GetComponent <Enemy_Patrol>();
    }