void Update() { if (!tankControl.HasShot && tankControl.IsMoving) // No shot and moving - wait 'till stop { return; } GetEnemy(); if (currentEnemyType == EnemyType.None) { this.enabled = false; return; } Vector2 enemyPosition = currentEnemy.transform.position; Vector2 enemyRelativePosition = enemyPosition - (Vector2)transform.position; float newOrientation = tankControl.GetOrientation(ref enemyRelativePosition); newOrientation += Random.Range(-shootingInaccuracy, shootingInaccuracy); enemyPosition += new Vector2( Random.Range(-movenmentInaccuracy, movenmentInaccuracy), Random.Range(-movenmentInaccuracy, movenmentInaccuracy)); if (tankControl.HasShot) { tankControl.TurnCannonTo(ref newOrientation); tankControl.TryFire(); } if (!tankControl.IsMoving) { tankControl.TryMoveAndTurnTo(ref enemyPosition); } }
// Update is called once per frame void Update() { Vector2 mousePosition = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector2 relativeMousePosition = mousePosition - (Vector2)transform.position; float newOrientation = tankControl.GetOrientation(ref relativeMousePosition); tankControl.TurnCannonTo(ref newOrientation); if (Input.GetMouseButtonDown(0)) { if (tankControl.TryFire()) { Assets.Scripts.Stats.getInstance().ShotFired(); } tankControl.TryMoveAndTurnTo(ref mousePosition); } if (Input.GetMouseButtonDown(1) && Input.GetKey(KeyCode.LeftControl)) { tankControl.BlowUp(); } }