Пример #1
0
    // 弾を発射する関数
    private void ShootNWay(float angleBase, float angleRange, float speed, int count)
    {
        //var pos = transform.position + transform.forward / 2f; // プレイヤーの位置
        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 = Instantiate(shotPrefab, pos, rot);
                var shot = PlayerShot.Add(this.gameObject.tag, pos.x, pos.y, pos.z);

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

                ///shot.UpdateShot();
            }
        }
        // 弾を 1 つだけ発射する場合
        else if (count == 1)
        {
            // 発射する弾を生成する
            //var shot = Instantiate(shotPrefab, pos, rot);
            var shot = PlayerShot.Add(this.gameObject.tag, pos.x, pos.y, pos.z);

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

            //shot.StartShotEffect();

            //shot.UpdateShot();
        }
    }