public void FixedUpdate() { if (radar) { radar.SelectNearestEnemy(); target = radar.GetSelectedTarget(); } if (target) { AlignToSelectedTarget(); var nextFireAt = lastFiredAt + 0.25f; if (aircraftWeapon && radar.IsLocked() && nextFireAt < Time.time) { aircraftWeapon.FireWeapon(); lastFiredAt = Time.time; } } else if (waypoint) { if (IsPositionReached(waypoint.position)) { waypoint = waypoint.GetNearest(); } if (IsPositionReachable(waypoint.position)) { AlignToWaypoint(); } else { AlignToHorizon(); } } else { AlignToHorizon(); } if (rigidbody.velocity.magnitude < aircraft.speedStall) { aircraft.ApplySpeedControl(1f, 0f); } if (rigidbody.velocity.magnitude > aircraft.speedNominal) { aircraft.ApplySpeedControl(0f, 0f); } }
// Update is called once per frame public void FixedUpdate() { // Read input for the pitch, yaw, roll and throttle of the aeroplane. var inputRoll = CrossPlatformInputManager.GetAxis("Roll"); var inputPitch = CrossPlatformInputManager.GetAxis("Pitch"); var inputYaw = CrossPlatformInputManager.GetAxis("Yaw"); var inputThrottle = CrossPlatformInputManager.GetAxis("Throttle"); var inputBrakes = CrossPlatformInputManager.GetAxis("Brakes"); // Apply controls aircraft.ApplyHeadingControl(inputPitch, inputRoll, inputYaw); aircraft.ApplySpeedControl(inputThrottle, inputBrakes); // Cycle targets if (radar) { var inputSwitchTarget = CrossPlatformInputManager.GetButtonDown("SwitchTarget"); if (inputSwitchTarget) { radar.CycleTargets(); } } }