Пример #1
0
    // 弾が表示された時に呼び出される
    void OnEnable()
    {
        shotType    = GetComponent <ShotType> ();
        missileBomb = GetComponent <MissileBomb> ();        //爆風発生用コンポネント
        managerObj  = FindObjectOfType <Manager> ();

        if (shotType != null)
        {
            //shotTypeの値によって弾道を変更する ここでは弾丸の軌道を管理する 基本は前方へ射出する
            int selectedShotType = shotType.getShotType();
            switch (selectedShotType)
            {
            case 1:
            case 2:
            case 3:
                rigidbody2D.velocity = transform.up.normalized * speed;
                break;

            case 4:
                //ミサイルの処理
                //serchTagメソッドで索敵する際の注意!! タグ名をつけないとミサイルが参照先を失ってその場に停滞してしまう
                enemy_obj = serchTag(gameObject, "Enemy");
                if (enemy_obj != null)
                {
                    Missile_Homing(enemy_obj);
                    LookAt2D(enemy_obj);
                }
                else
                {
                    //敵が見つからない場合はまっすぐ飛ぶ
                    rigidbody2D.velocity = transform.up.normalized * speed;
                }

                //誘導がうまくできなければまっすぐ飛ぶ
                rigidbody2D.velocity = transform.up.normalized * speed;
                break;

            default:
                rigidbody2D.velocity = transform.up.normalized * speed;
                break;
            }
        }
        else
        {
            //shotTypeに依存しない処理 何かしらの問題でshotType取得に失敗した場合まっすぐ飛ぶ
            rigidbody2D.velocity = transform.up.normalized * speed;
        }
    }
Пример #2
0
    void Start()
    {
        /*
         * static変数、shotTypeの値によって弾道を変更する
         */
        shotType = GetComponent <ShotType> ();

        /*
         * 爆風発生用コンポネント
         */
        missileBomb = GetComponent <MissileBomb> ();

        if (shotType != null)
        {
            //ここでは弾丸の軌道を管理する
            //基本は前方へ射出する
            if (shotType.getShotType() == 1)
            {
                rigidbody2D.velocity = transform.up.normalized * speed;
                Destroy(gameObject, lifeTime);
            }
            else if (shotType.getShotType() == 2)
            {
                rigidbody2D.velocity = transform.up.normalized * speed;
                Destroy(gameObject, lifeTime);
            }
            else if (shotType.getShotType() == 3)
            {
                rigidbody2D.velocity = transform.up.normalized * speed;
                Destroy(gameObject, lifeTime);
            }
            else if (shotType.getShotType() == 4)
            {
                //serchTagメソッドで索敵する際の注意!!
                //タグ名をつけないとミサイルが参照先を失ってその場に停滞してしまう

                enemy_obj = serchTag(gameObject, "Enemy");
                if (enemy_obj != null)
                {
                    Missile_Homing(enemy_obj);
                    LookAt2D(enemy_obj);
                    Destroy(gameObject, lifeTime);
                }
                else
                {
                    //敵が見つからない場合はまっすぐ飛ぶ
                    //print ("missile none target !!");
                    rigidbody2D.velocity = transform.up.normalized * speed;
                    Destroy(gameObject, lifeTime);
                }

                //誘導がうまくできなければまっすぐ飛ぶ
                rigidbody2D.velocity = transform.up.normalized * speed;
                // lifeTime秒後に削除
                Destroy(gameObject, lifeTime);
            }
            //ここまでミサイルの処理
        }
        else
        {
            //何かしらの問題でshotType取得に失敗した場合まっすぐ飛ぶ
            //shotTypeに依存しない処理
            //print ("Bullet.cs... shotType NONE!");
            rigidbody2D.velocity = transform.up.normalized * speed;
            // lifeTime秒後に削除
            Destroy(gameObject, lifeTime);
        }
    }