Ejemplo n.º 1
0
 //Resume選択時
 private void SelectResume()
 {
     //レイが当たっていれば
     if (isHitRay == true)
     {
         //ゲージを溜める
         gauge.fillAmount += 1 - Mathf.Clamp01((1.5f - Time.deltaTime) / 1.5f);
         timer            -= Time.deltaTime;
         //ゲージが溜まり切りかつシーン遷移が開始されていなければ
         if (timer < 0.0f && isChange == false)
         {
             sounds_Manager.PlaySE("Beam", 1);
             //ポーズ画面を閉じる
             scene_Manager.SelectPause();
             isChange = true;
             GameObject.FindGameObjectWithTag(TagName.PLAYER).GetComponent <VR_PlayerWireAction>().MenuModeChange(false);
         }
     }
     else
     {
         gauge.fillAmount = 0;
         timer            = 1.5f;
     }
 }
Ejemplo n.º 2
0
 //通常弾攻撃処理
 void BossAttack_Bullet()
 {
     if (bulletTimeCount == 0)
     {
         soundsManager.PlaySE("Balkan", 10);
     }
     //カウンターフラグがたったらカウンター攻撃に移行
     if (isCounter == true)
     {
         bulletTimeCount = 0.0f;
         prevAttackState = attackState;
         bossState       = BossState.Counter;
     }
     //通常弾攻撃時間カウントの加算
     bulletTimeCount += Time.deltaTime;
     if (bulletTimeCount <= bulletEndTime)
     {
         //徐々に腕をプレイヤーに向ける
         RightArm.transform.rotation = Quaternion.Slerp(RightArm.transform.rotation, targetRotate_R_Arm, rotateSpeed * Time.deltaTime);
         LeftArm.transform.rotation  = Quaternion.Slerp(LeftArm.transform.rotation, targetRotate_L_Arm, rotateSpeed * Time.deltaTime);
         bulletdelay += Time.deltaTime;
         //0.1秒毎に弾を生成
         if (bulletdelay > 0.1f)
         {
             Instantiate(bulletPrefab, attackPos_R.position, attackPos_R.rotation);
             Instantiate(bulletPrefab, attackPos_L.position, attackPos_L.rotation);
             bulletdelay = 0.0f;
         }
     }
     else
     {
         bulletTimeCount = 0.0f;
         prevAttackState = attackState;
         bossState       = BossState.Stop;
     }
 }
Ejemplo n.º 3
0
    public void OnTriggerEnter(Collider other)
    {
        //プレイヤーと当たったら
        if (other.tag == TagName.PLAYER)
        {
            soundsManager.PlaySE("ItemGet", 6);
            //アイテム取得数加算
            item_manger.ItemCountUp();
            //アイテムタイプによってそれぞれ効果付与
            switch (itemType)
            {
            case ItemType.AttackPower:
                playerAbility.CountUp_AttackPower();
                break;

            case ItemType.KnockBack:
                playerAbility.CountUp_KnockBack();
                break;

            case ItemType.MaxWireCount:
                playerAbility.CountUp_WireCount();
                break;

            case ItemType.ResponeTime:
                playerAbility.CountUp_ResporneTime();
                break;

            case ItemType.AllUp:
                playerAbility.CountUp_All();
                break;
            }
            //矢印とアイテムを削除
            Destroy(arrow);
            Destroy(this.gameObject);
        }
    }
Ejemplo n.º 4
0
 // Update is called once per frame
 void Update()
 {
     //if (Input.GetKey(KeyCode.C)) isHitRay = true;
     //選択タイプがステージだったら
     if (type == SelectType.Stage)
     {
         //レイが当たっていたら
         if (isHitRay == true)
         {
             //ゲージを進める
             gauge.fillAmount += 1 - Mathf.Clamp01((1.5f - Time.deltaTime) / 1.5f);
             timer            -= Time.deltaTime;
             //時間が0になるかつ遷移が始まっていなければ
             if (timer < 0.0f && isChange == false)
             {
                 sounds_manager.PlaySE("Beam", 1);
                 scene_manager.SelectStage(nextScene);
                 isChange = true;
                 tv_cont.OnCompleteGauge_Stage();
             }
         }
         else
         {
             //初期化
             gauge.fillAmount = 0;
             timer            = 1.5f;
         }
     }
     //選択タイプがチュートリアルをプレイだったら
     if (type == SelectType.Tutorial_Y)
     {
         //レイが当たっていたら
         if (isHitRay == true)
         {
             //ゲージを進める
             gauge.fillAmount += 1 - Mathf.Clamp01((1.5f - Time.deltaTime) / 1.5f);
             timer            -= Time.deltaTime;
             //時間が0になるかつ遷移が始まっていなければ
             if (timer < 0.0f && isChange == false)
             {
                 sounds_manager.PlaySE("Beam", 1);
                 scene_manager.SelectStage(nextScene);
                 iconLorR.SetActive(false);
                 isChange = true;
                 tv_cont.OnCompleteGauge_TutoY();
             }
         }
         else
         {
             gauge.fillAmount = 0;
             timer            = 1.5f;
         }
     }
     //選択タイプがチュートリアルをプレイしないだったら
     if (type == SelectType.Tutorial_N)
     {
         //レイが当たっていたら
         if (isHitRay == true)
         {
             //ゲージを進める
             gauge.fillAmount += 1 - Mathf.Clamp01((1.5f - Time.deltaTime) / 1.5f);
             timer            -= Time.deltaTime;
             if (timer < 0.0f && isSelect_No == false)
             {
                 sounds_manager.PlaySE("Beam", 1);
                 iconLorR.SetActive(false);
                 tv_cont.OnCompleteGauge_TutoN();
                 isSelect_No = true;
             }
         }
         else
         {
             gauge.fillAmount = 0;
             timer            = 1.5f;
         }
     }
     isHitRay = false;
 }
Ejemplo n.º 5
0
    //ショットガン攻撃
    void BossAttack_ShotGun()
    {
        isOnlyRotate = false;
        //カウンターフラグがたったらカウンター攻撃に移行
        if (isCounter == true)
        {
            //パネルエフェクトを消す
            for (int n = 0; n < panels.Length; n++)
            {
                panels[n].GetComponent <PanelEffectScript>().PanelEffect_OFF();
            }
            shotGunShotCount = 0;
            bossState        = BossState.Counter;
        }
        //ショットガン発射回数が最大回数以下なら
        if (shotGunShotCount < shotGunMaxShot)
        {
            //全てのパネルと比較
            for (int i = 0; i < panels.Length; i++)
            {
                //プレイヤーがパネルから離れすぎていなければ
                if (player.transform.position.y <= 10)
                {
                    //腕を向ける方向をプレイヤーに近いパネルに設定
                    if (Vector3.Distance(panels[i].transform.position, player.transform.position) <= 20.0f)
                    {
                        shotTargetRotate = Quaternion.LookRotation(panels[i].transform.position - this.transform.position);
                        shotTarget_R     = Quaternion.LookRotation(panels[i].transform.position - RightArm.transform.position);
                        shotTarget_L     = Quaternion.LookRotation(panels[i].transform.position - LeftArm.transform.position);
                        //パネルエフェクトを起動
                        panels[i].GetComponent <PanelEffectScript>().PanelEffect_ON();
                    }
                    else
                    {
                        //パネルエフェクトを消す
                        panels[i].GetComponent <PanelEffectScript>().PanelEffect_OFF();
                    }
                }
                else
                {
                    //腕を向ける方向をプレイヤーに設定
                    shotTargetRotate = Quaternion.LookRotation(player.transform.position - this.transform.position);
                    shotTarget_R     = Quaternion.LookRotation(player.transform.position - RightArm.transform.position);
                    shotTarget_L     = Quaternion.LookRotation(player.transform.position - LeftArm.transform.position);
                    panels[i].GetComponent <PanelEffectScript>().PanelEffect_OFF();
                }
            }
            //腕を向ける
            this.transform.rotation     = Quaternion.Slerp(this.transform.rotation, shotTargetRotate, rotateSpeed * Time.deltaTime);
            RightArm.transform.rotation = Quaternion.Slerp(RightArm.transform.rotation, shotTarget_R, rotateSpeed * Time.deltaTime);
            LeftArm.transform.rotation  = Quaternion.Slerp(LeftArm.transform.rotation, shotTarget_L, rotateSpeed * Time.deltaTime);

            shotGundelay_R -= Time.deltaTime;
            shotGundelay_L -= Time.deltaTime;
            //攻撃待機時間を越えたら(右)
            if (shotGundelay_R < 0.0f)
            {
                //弾を100発生成
                for (int n = 0; n < 100; n++)
                {
                    Instantiate(boss3Bullet, rightShotPos.position, rightShotPos.rotation);
                }
                soundsManager.PlaySE("Shotgun", 12);

                shotGunShotCount += 1;
                shotGundelay_R    = 4.0f;
            }
            //攻撃待機時間を越えたら(左)
            if (shotGundelay_L < 0.0f)
            {
                //弾を100発生成
                for (int n = 0; n < 100; n++)
                {
                    Instantiate(boss3Bullet, leftShotPos.position, leftShotPos.rotation);
                }
                soundsManager.PlaySE("Shotgun", 12);

                shotGunShotCount += 1;
                shotGundelay_L    = 4.0f;
            }
        }
        else
        {
            for (int n = 0; n < panels.Length; n++)
            {
                panels[n].GetComponent <PanelEffectScript>().PanelEffect_OFF();
            }
            shotGunShotCount = 0;
            bossState        = BossState.Stop;
        }
    }