Ejemplo n.º 1
0
    public override void Launch(Transform target, Vector3 velocity)    // Rakete abfeuern.
    {
        if (raketenAnzahl > 0 && nachladeCooldown <= 0.0f && magazinNachladeCooldown <= 0.0f)
        {
            if (fireSource != null)
            {
                fireSource.Play();
            }

            Vector3 abweichung = UnityEngine.Random.insideUnitCircle * (streuung * Mathf.Deg2Rad);
            abweichung = launchPoints[boxAnzahl].TransformDirection(abweichung);
            Vector3    randomizedForward  = launchPoints[boxAnzahl].forward + abweichung;
            Quaternion randomizedRotation = Quaternion.LookRotation(randomizedForward);

            LauncherMissile missile = ErzeugeRackete(launchPoints[boxAnzahl].position, randomizedRotation);
            missile.target = target;
            missile.Launch(target, velocity);
            nachladeCooldown = verzögerung;
            raketenAnzahl--;

            boxAnzahl++;
            if (boxAnzahl >= launchPoints.Count)
            {
                boxAnzahl = 0;
            }
            // Reload
            if (raketenAnzahl <= 0)
            {
                ReloadMagazine();
            }
        }
    }
Ejemplo n.º 2
0
        public bool Launch(Transform target, Vector3 inheritedVelocity)
        {
            bool successfulLaunch = false;

            if (loadedMissile != null)
            {
                loadedMissile.Launch(target, inheritedVelocity);
                loadedMissile    = null;
                cooldown         = nachladen;
                successfulLaunch = true;
            }
            return(successfulLaunch);
        }