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; } } }
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; } } } }
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>(); }