// Update is called once per frame void FixedUpdate() { time -= Time.deltaTime; if (time < 0) { BlowUp(); } if (Target == null || !Target.activeSelf) { Target = EM.GetClosestEnemyInRange(transform.position, Range * 2, EnemyTags); if (Target == null) { BlowUp(); return; } } var direction = Target.transform.position - transform.position; var angle = MathHelpers.Angle(direction, transform.up) * Time.deltaTime * Inertia; velocity = velocity.Rotate(angle); transform.position += (Vector3)velocity * Time.deltaTime; transform.up = velocity; }
// Update is called once per frame void FixedUpdate() { if (Target == null || !Target.activeSelf) { Target = EM.GetClosestEnemyInRange(transform.position, float.PositiveInfinity, EnemyTags); if (Target == null) { BlowUp(); return; } } var direction = Target.transform.position - transform.position; var angle = MathHelpers.Angle(direction, transform.up) * Time.deltaTime * Inertia; velocity = velocity.Rotate(angle); velocity += (Vector2)direction.normalized * acceleration * Time.deltaTime; transform.position += (Vector3)velocity * Time.deltaTime; transform.up = velocity; }
// Update is called once per frame void Update() { var enemy = EM.GetEnemyInRange(transform.position, Range, enemyTags); if (enemy != null) { // TurnToEnemy(enemy.transform.position + enemy.transform.right * 32); if (timeToShoot < 0) { GameObject bullet = Instantiate(BulletPrototype, transform); //bullet.transform.position = transform.position; //bullet.transform.rotation = transform.rotation; var bulletScript = bullet.GetComponent <FlyingShotScript>(); bulletScript.Speed = BulletSpeed; bulletScript.Range = Range; bulletScript.Direction = EnemyDirection(enemy.transform.position); bulletScript.Damage = Damage; bulletScript.Target = enemy; bulletScript.EnemyTags = enemyTags; bulletScript.Turret = transform; //bullet.SetActive(true); timeToShoot = ShootingPeriod; return; } } else { var closestEnemy = EM.GetClosestEnemyInRange(transform.position, Range * 2, enemyTags); //if (closestEnemy != null) TurnToEnemy(closestEnemy.transform.position + closestEnemy.transform.right * 32); } timeToShoot -= Time.deltaTime; }