// Update is called once per frame void Update() { if (player != null) { Vector2 direction = new Vector2(player.position.x - transform.position.x, player.position.y - transform.position.y); float distance = Vector3.Distance(transform.position, player.transform.position); if (distance < 20) { transform.up = direction; if (distance > 5) { rb.AddRelativeForce(Vector2.up * tankEntity.speed); } if (Time.timeSinceLevelLoad - lastFired > 1f) { foreach (TankPart part in tankEntity.parts) { if (part is WeaponPart) { WeaponPart weapon = (WeaponPart)part; if (part != null) { weapon.Fire(); } } } lastFired = Time.timeSinceLevelLoad; } } } }