Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
        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);
        }