// Update is called once per frame void FixedUpdate() { float motor = carJoystick.Vertical; float steering = carJoystick.Horizontal; float breaks = 0; if (Mathf.Abs(motor) < .2f) { breaks = 1; } car.MoveCar(motor, steering, breaks); cannon.RotateCannon(cannonJoystick.Horizontal); cannon.ElevateCannon(-cannonJoystick.Vertical); }
private void ElevateCannon() { if (distanceToTarget > maxShootingDistance) { return; } Transform cannonElevator = cannonControl.CannonElevator().transform; float distanceFactor = distanceToTarget / maxShootingDistance; float elevationRange = cannonControl.elevationMaxAngle - cannonControl.elevationMinAngle; float desiredElevation = cannonControl.elevationMaxAngle - (elevationRange * distanceFactor); float elevationDirection = ((cannonElevator.eulerAngles.x / desiredElevation) - 1) * -20; cannonControl.ElevateCannon(elevationDirection); }