Esempio n. 1
0
    /// <summary>
    /// 弾を発射する関数
    /// </summary>
    /// <param name="angleBase"></param>
    /// <param name="angleRange"></param>
    /// <param name="speed"></param>
    /// <param name="count"></param>
    private void ShootNWay(float angleBase, float angleRange, float speed, int count)
    {
        // var pos = transform.position + transform.forward; // プレイヤーの位置
        var pos = canonPos.position;
        var rot = transform.rotation; // プレイヤーの向き

        // 弾を複数発射する場合
        if (1 < count)
        {
            // 発射する回数分ループする
            for (int i = 0; i < count; ++i)
            {
                // 弾の発射角度を計算する
                var angle = angleBase +
                            angleRange * ((float)i / (count - 1) - 0.5f);

                // 発射する弾を生成する
                var shot = EnemyShot.Add(this.gameObject.tag, pos.x, pos.y, pos.z, player);

                // 弾を発射する方向と速さを設定する
                shot.Init(angle, speed, gm);
            }
        }
        // 弾を 1 つだけ発射する場合
        else if (count == 1)
        {
            // 発射する弾を生成する
            var shot = EnemyShot.Add(this.gameObject.tag, pos.x, pos.y, pos.z, player);

            // 弾を発射する方向と速さを設定する
            shot.Init(angleBase, speed, gm);

            shot.StartShotEffect();
        }
    }