private IEnumerator Charge_Shoot_Cor() { if (BeetlePowerManager.Instance.beetle_Power < essential_Power_In_Charge_Shoot) { yield break; } //パワー減らす BeetlePowerManager.Instance.Decrease(essential_Power_In_Charge_Shoot); //効果音 player_SE.Play_Charge_Shoot_Sound(); camera_Shake.Shake(0.25f, new Vector2(0, 1.2f), false); //ボム生成 var bomb = Instantiate(charge_Shoot_Bomb); bomb.transform.position = transform.position; //ショット生成 if (charge_Shoot_Obj.activeSelf) { yield break; } var obj = charge_Shoot_Obj; obj.transform.position = transform.position + new Vector3(transform.localScale.x * 128f, 0); obj.SetActive(true); ShootSystem[] shoots = obj.GetComponentsInChildren <ShootSystem>(); StartCoroutine("Inactive_Charge_Shoot_Obj_Cor", obj); //ショット shoots[0].Shoot(); yield return(new WaitForSeconds(1f / 14f)); shoots[1].Shoot(); }
//敵と衝突時の処理 private IEnumerator Do_Hit_Attack_Process() { float force = _controller.is_Landing ? 170f : 60f; //ノックバック _rigid.velocity = new Vector2(force * -transform.localScale.x, 20f); BeetlePowerManager.Instance.StartCoroutine("Increase_Cor", 25); //緑パワーの増加 player_SE.Play_Charge_Shoot_Sound(); //効果音 camera_Shake.Shake(0.25f, new Vector2(0, 1.2f), false); //ヒットストップ float tmp = Time.timeScale; Time.timeScale = 0.4f; yield return(new WaitForSeconds(0.05f)); Time.timeScale = tmp; }
private IEnumerator Charge_Shoot_Cor() { if (BeetlePowerManager.Instance.beetle_Power < essential_Power_In_Charge_Shoot) { yield break; } //パワー減らす BeetlePowerManager.Instance.Decrease(essential_Power_In_Charge_Shoot); //生成 var obj = Instantiate(charge_Shoot_Obj); obj.transform.position = transform.position + new Vector3(transform.localScale.x * 128f, 0); ShootSystem[] shoots = obj.GetComponentsInChildren <ShootSystem>(); player_SE.Play_Charge_Shoot_Sound(); camera_Shake.Shake(0.25f, new Vector2(0, 1.2f), false); //ショット shoots[0].Shoot(); yield return(new WaitForSeconds(1f / 14f)); shoots[1].Shoot(); }
private IEnumerator Kick_Cor(Kind kind) { accept_Input = false; //入力受付後500フレーム以内にキック可能になればキック float loop_Count = 0; while (!_controller.can_Attack) { yield return(null); loop_Count++; if (loop_Count > 500) { accept_Input = true; yield break; } } //キック開始 _controller.can_Attack = false; _controller.Set_Is_Playable(false); _controller.Change_Animation("KickBool"); player_Body.Change_Collider_Size(new Vector2(10, 12), new Vector2(0, -6)); player_SE.Play_Kick_Sound(); if (kind == Kind.kick || kind == Kind.sliding) { kick_Collision.Make_Collider_Appear(false); StartCoroutine("Kicking_Cor"); } else { kick_Collision.Make_Collider_Appear(true); player_SE.Play_Charge_Shoot_Sound(); Quit_Charge(true); player_Body.Become_Invincible(); StartCoroutine("Charge_Kicking_Cor"); } yield return(new WaitUntil(End_Kick)); //キック終了 if (_controller.is_Landing) { _controller.Change_Animation("IdleBool"); } else { _controller.Change_Animation("JumpBool"); } _controller.Set_Is_Playable(true); kick_Collision.Make_Collider_Disappear(); player_Body.Back_Default_Collider(); if (kind == Kind.charge_Kick || kind == Kind.charge_Sliding) { player_Body.Release_Invincible(); } _controller.can_Attack = true; accept_Input = true; }