//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; } }
//通常弾攻撃処理 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; } }
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); } }
// 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; }
//ショットガン攻撃 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; } }