// Update is called once per frame void Update() { if (player == null) { player = StageManager.currentInstance.GetPlayer(); } if (findNextPositionTimer < 0) { targetPos = new Vector3(Random.Range(MIN_X, MAX_X), Random.Range(MIN_Y, MAX_Y), 0); findNextPositionTimer = FIND_NEXT_POSITION_DELAY; } else { findNextPositionTimer -= Time.deltaTime * entityNPC.GetEntityTimescale(); } transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * movespeed * entityNPC.GetEntityTimescale()); shootready += Time.deltaTime * entityNPC.GetEntityTimescale(); if (shootready > 1 && player != null) { shootready = 0; entityNPC.Shoot(TrackTo(player.GetGameObject().transform)); } }
void FixedUpdate() { lifetime += Time.fixedDeltaTime * entityManaged.GetEntityTimescale(); if (lifetime < MAX_FIGHT_TIME) { shootready += Time.fixedDeltaTime * entityManaged.GetEntityTimescale() * FIRERATE; if (transform.position.y > targetCombatY) { transform.Translate(0, -((transform.position.y - targetCombatY) + MIN_ENTRANCE_MOVESPEED) * Time.fixedDeltaTime * entityManaged.GetEntityTimescale(), 0); } transform.position = Vector3.MoveTowards(transform.position, new Vector3(player.GetGameObject().transform.position.x, transform.position.y, transform.position.z), FIGHT_MOVESPEED * Time.fixedDeltaTime * entityManaged.GetEntityTimescale()); } else { transform.Translate(0, RETREAT_MOVESPEED * Time.fixedDeltaTime * entityManaged.GetEntityTimescale(), 0); if (transform.position.y > 17) { entityManaged.RetreatFromStage(); } } if (shootready > 1) { shootready = 0; entityManaged.Shoot(270); } }
// Update is called once per frame void Update() { if (player == null) { player = StageManager.currentInstance.GetPlayer(); angleToTarget = 0; } else { angleToTarget = TrackTo(player.GetGameObject().transform); if (EntityManaged.GetEntityTimescale() > 0) { transform.rotation = Quaternion.Euler(0, 0, angleToTarget + 90); } } transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * movespeed * EntityManaged.GetEntityTimescale()); if (lifetime < RETREAT_TIME) { lifetime += Time.deltaTime * EntityManaged.GetEntityTimescale(); if (lifetime >= RETREAT_TIME) { movespeed = ESCAPE_SPEED; targetPos = new Vector3(Random.Range(1, 3) == 1 ? -12 : 12, transform.position.y, 0); } } else if (transform.position == targetPos) { EntityManaged.RetreatFromStage(); } shootready += Time.deltaTime * EntityManaged.GetEntityTimescale(); if (shootready > 1 && player != null) { shootready = 0; EntityManaged.Shoot(angleToTarget); } }