Example #1
0
    // Set the speed of the bullet that was just shot
    private void setBulletSpeed(GameObject bullet, float speed)
    {
        linear_travel LT = bullet.GetComponentInChildren <linear_travel> ();

        if (LT != null)
        {
            LT.setSpeed(speed);
            return;
        }

        // seeking_missile starts with 0 velocity
        // sin_travel starts with fixed velocity
    }
Example #2
0
    // Spawn a missile with degree offset of angleDiffDegr
    public void spawnMissileAtDegreeOffset(float angleDiffDegr, bool seekingEnabled)
    {
        float angleDiffRad = angleDiffDegr * Mathf.Deg2Rad;

        float a = transform.eulerAngles.z * Mathf.Deg2Rad;

        a += angleDiffRad;

        Vector3 offset = new Vector3(Mathf.Cos(a), Mathf.Sin(a), 0) * _offset;

        // Spawn the missile
        Vector3 pos = transform.position + offset;

        GameObject missile = Instantiate(_missile, pos, transform.rotation);

        activeMissiles.Add(missile);

        linear_travel   linTrav = missile.GetComponentInChildren <linear_travel> ();
        seeking_missile seeking = missile.GetComponentInChildren <seeking_missile> ();

        //Vector2 playerVelo = transform.root.gameObject.GetComponentInChildren<PlayerMove> ().velo;

        if (seekingEnabled)
        {
            linTrav.enabled = false;
            seeking.enabled = true;

            //seeking.setVelo (playerVelo);
            Vector2 direction = pos - transform.position;
            float   speed     = linTrav.getBaseSpeed;
            seeking.setVelo(direction, speed * 10);
        }
        else
        {
            linTrav.enabled = true;
            seeking.enabled = false;

            //linTrav.setSpeed(playerVelo.magnitude);
        }

        // Set the correct rotation
        missile.transform.Rotate(new Vector3(0, 0, angleDiffDegr));

        // Set its explosion settings
        BulletScript BS = missile.GetComponentInChildren <BulletScript>();

        BS.setExploSettings(exploRadiusMult, _explosionDamage);
    }